Вы вообще задумывались о предпринимаемых шагах?
- Создайте запрос на выборку (возможно, с предикатом, если вы хотите отфильтровать результаты).
- Выполните запрос на получение. В случае успеха...
- Для каждого экземпляра в возвращаемом массиве результатов...
- Создайте путь, используя атрибут «имя».
- Напишите строку «сообщение» в путь, который вы только что создали.
- Следующий экземпляр...
После того, как вы определили шаги, совсем несложно найти соответствующие части документацию, чтобы понять, как выполнять каждый шаг.
На самом деле вы можете выполнить это в трех строках кода, если вы встраиваете некоторые вещи и уже проверили, что целевая папка доступна для записи и не заботится о перезаписи.
Обновить
Итак, это занимает как минимум четыре строки, так как вы не можете инициировать запрос на выборку с описанием сущности, предполагая, что вы игнорируете ошибки выборки. Поскольку вы просили код:
NSFetchRequest *fr = [[[NSFetchRequest alloc] init] autorelease];
[fr setEntity:[NSEntityDescription entityForName:@"EntityName"
inManagedObjectContext:[self managedObjectContext]]]
error:nil];
NSArray *results = [[self managedObjectContext] executeFetchRequest:fr error:nil];
for (id result in results){
[[result valueForKey:@"message"] writeToFile:[basePath stringByAppendingPathComponent:[NSString stringWithFormat:@"%@.txt", [result valueForKey:@"name"]]]
atomically:NO]
};
Конечно, это не очень читабельно (т.е. уродливо) и делает всевозможные предположения, но вы поняли. Вот более полный (и иллюстративно подробный) способ:
// Create the fetch request
NSFetchRequest * fr = [[[NSFetchRequest alloc] init] autorelease];
[fr setEntity:[NSEntityDescription entityForName:@"EntityName" inManagedObjectContext:[self managedObjectContext]]];
// Execute the fetch request
NSError * error = nil;
NSArray * results = [[self managedObjectContext] executeFetchRequest:fr error:&error];
if (results)
{
// Process the results
NSString * name;
NSString * message;
NSString * path;
for (id result in results)
{
// Figure out this result's info
name = [result valueForKey:@"name"];
message = [result valueForKey:@"message"];
path = [basePath stringByAppendingPathComponent:[NSString stringWithFormat:@"%@.txt", name]];
// Write the message to the predetermined path
[message writeToFile:path atomically:NO];
}
} else {
// Error fetching results, so present error to user
[NSApp presentError:error];
}
person
Joshua Nozzi
schedule
02.04.2010