Objective C - 使用Core-Data发布

时间:2011-01-11 15:00:55

标签: iphone memory-management

从内存管理的角度来看,这是一个正确的代码吗?

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?

由于

2 个答案:

答案 0 :(得分:1)

查看该代码,您拥有的唯一对象是eventRequest。它正在自动释放,因此您无需再次发布它。

从我所看到的,基于命名约定,所有其他对象都不归属,因此您不需要释放它们。

[description release];可能会导致您在某个地方崩溃。

答案 1 :(得分:-1)

您不需要该代码的任何版本。您应该阅读Apple's documentation以了解原因。