Have you given any thought at all to the steps involved?
- Create a fetch request (possibly
with a predicate if you want to
filter the results).
- Execute the fetch request. If successful ...
- For each instance in the returned results array ...
- Create a path using the "name" attribute.
- Write the "message" string to the path you just created.
- Next instance...
Once you've identified the steps, it's not difficult at all to look up the relevant parts of the documentation to figure out how to do each step.
You could actually perform this in three lines of code if you inline some things and have already verified the target folder is writable and don't care about overwriting.
Update
Okay, so it takes a minimum of four lines since you can't init a fetch request with an entity description, assuming you ignore fetch errors. Since you asked for the code:
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];
Of course this isn't very readable (ie, it's ugly) and makes all sorts of assumptions, but you get the point. Here's a more complete (and illustratively verbose) way:
// 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];
}