在以下来自核心数据编程指南的代码示例中,NSFetchRequest创建为 autorelease,而NSSortDescriptor不是使用autorelease创建的。为什么不使用autorelease创建NSSortDescriptor?这是一个偏好问题吗?自动发布或不自动发布
NSManagedObjectContext *moc = [self managedObjectContext];
NSEntityDescription *entityDescription = [NSEntityDescription entityForName:@"Employee"
inManagedObjectContext:moc];
NSFetchRequest *request = [[[NSFetchRequest alloc] init] autorelease];
[request setEntity:entityDescription];
// Set example predicate and sort orderings...
NSNumber *minimumSalary = ...;
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"(lastName LIKE[c]'Worsley') AND (salary > %@)", minimumSalary];
[request setPredicate:predicate];
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"firstName"
ascending:YES];
[request setSortDescriptors:[NSArray arrayWithObject:sortDescriptor]];
[sortDescriptor release];
NSError *error;
NSArray *array = [moc executeFetchRequest:request error:&error];
if (array == nil){
// Deal with error...
}
这是我为autorelease读过的最简洁的解释。 – TechZen 2010-01-30 00:14:25
的确很好答案! +! – 2011-04-10 02:37:58