从内存管理的角度来看,这是一个正确的代码吗?
NSEntityDescription *description = [NSEntityDescription
entityForName:@"Event" inManagedObjectContext:managedObjectContext];
NSFetchRequest *eventRequest = [[[NSFetchRequest alloc] init] autorelease];
[eventRequest setEntity:description];
[description release];
NSPredicate *eventPredicate = [NSPredicate predicateWithFormat:
@"(event == %@)", [item objectForKey:@"event"]];
[eventRequest setPredicate:eventPredicate];
或者我需要发布说明和eventPredicate?
由于
答案 0 :(得分:1)
查看该代码,您拥有的唯一对象是eventRequest
。它正在自动释放,因此您无需再次发布它。
从我所看到的,基于命名约定,所有其他对象都不归属,因此您不需要释放它们。
行[description release];
可能会导致您在某个地方崩溃。
答案 1 :(得分:-1)
您不需要该代码的任何版本。您应该阅读Apple's documentation以了解原因。