我有这个权利......
// Reactor.h
@property(nonatomic, retain) NSMutableArray *reactorCore;
// Reactor.m
[self setReactorCore:[NSKeyedUnarchiver unarchiveObjectWithFile:[self dataFilePath]]];
...
-(void)dealloc {
[reactorCore release];
[super dealloc];
}
我很确定我做得对(但只是想检查一下)。按照我的想法,NSKeyedUnarchiver返回它拥有的一个对象,然后我通过@property取得所有权,之后我发布了reactorCore并且一切都很好?
答案 0 :(得分:3)
我相信你的代码是正确的。如有疑问,可以在XCode中使用Build and Analize来检查可能的泄漏。
答案 1 :(得分:3)
没错。 NSKeyedUnarchiver
方法 - 因为它不包含单词copy
,new
或类似的东西 - 将返回一个自动释放的对象,您需要保留该对象(正如您所做)保持对它的所有权。