Вы дали любую мысль на всех ступенях, участвующих?
- Создать запрос выборки (возможно с предикатом, если вы хотите фильтровать результаты).
- Выполнение запроса на выборку. Если успешно ...
- Для каждого экземпляра в массиве возвращаемых результатов ...
- Создайте путь, используя атрибут «name».
- Напишите строку «сообщение» только что созданному пути.
- Следующий экземпляр ...
После того, как вы определили шаги, это не сложно, чтобы искать соответствующие части the documentation, чтобы выяснить, как сделать каждый шаг.
Фактически вы можете выполнить это в трех строках кода, если вы встраиваете некоторые вещи и уже проверили, что целевая папка доступна для записи и не заботится о перезаписи.
Update
Хорошо, так что это занимает минимум четыре строки, так как вы не можете инициализировать запрос выборки с описанием объекта, если вы игнорировать ошибки выборки. Так как вы просили код:
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];
}
Спасибо за ответ, вы могли бы разместить 3 строки кода? – nosedive25
Я сделал это, но в будущем вам будет интересно, по крайней мере, * попробовать * посмотреть вещи в документации. Улучшение ваших исследовательских навыков сделает вас лучшим разработчиком. –
Спасибо, что разместили код! – nosedive25