所以说我从核心数据请求中得到结果:(这是示例代码)
按下按钮事件:
NSMutableArray *results = [[myContext executeFetchRequest:request error:&error] mutableCopy];
myObject = (MyObject *)[mutableFetchResults1 objectAtIndex:0]; // assume that there's something in there
现在我希望myObject在我的程序中保持一段时间......即,'myObject'中包含的信息将用于其他事件等。所以我在我的.h文件中定义了它。
我的问题是,在这种情况下如何管理内存。我是否需要在某个时候“释放”结果或myObject?乐器说这是泄漏...但你有没有看到任何问题?
答案 0 :(得分:1)
你可以从结果中对0索引对象进行保留,如下所示:
myObject = [(MyObject *)[mutableFetchResults1 objectAtIndex:0] retain];
然后你就可以在那之后发布结果,myObject就会徘徊。然后,您将需要释放myObject。
答案 1 :(得分:1)
mutableCopy(和copy)返回一个保留计数为1的对象 - 您是返回对象的所有者。所以你必须在某个时候发布结果。
myObject由结果数组保留。您不需要明确释放它,因为您不是它的拥有者。
如果您只对myObject感兴趣,我会保留它并尽快发布结果。