释放属性

时间:2011-03-07 09:25:38

标签: objective-c

我有两个NSStrings,那些也有属性,合成。是否需要发布这些对象?

3 个答案:

答案 0 :(得分:3)

如果财产是复制或保留,则必须释放ivar。如果刚刚分配了值,则不得释放。

答案 1 :(得分:1)

是的!任何指针类型的东西属性和&合成应该被释放

答案 2 :(得分:0)

你是否应该致电释放实际上取决于。

如果你调用alloc + init,然后分配给属性,那么你必须释放。原因是alloc + init将引用计数增加1,因此您必须有相应的版本才能将引用计数返回到0.该版本应该在类的dealloc方法中。

但是,也可以在不调用alloc + init的情况下使用这些属性。那么通常你不必打电话给释放。例如,如果你使用self.property = [NSString stringWithFormat:@“...”],那么就没有必要调用release,实际上调用release会出错。

此外,您还可以决定自动释放对象,该对象告诉自动释放池稍后会自动释放对象。这是另一种不必手动释放对象的情况。