可能重复:
Why shouldn’t I use the getter to release a property in objective-c?
我对自己的分配和释放有点困惑。在查看了几篇文章和教程后,似乎需要更多建议。以下是问题清单:
[self.selectPopover release];
ObjClass.classArr = [[NSMutableArray alloc] init];
[ObjClass.classArr release];
所以任何人都可以清除我对此的怀疑。提前谢谢。
答案 0 :(得分:2)
您可以通过这篇文章了解您正在寻找的概念:
答案 1 :(得分:0)
我假设您已将该属性创建为retain
当你
ObjClass.classArr = [[NSMutableArray alloc] init];
此时,retainCount变为两个,一个因为alloc
而另一个因为通过retain
类型的属性赋值
当你[ObjClass.classArr release];
此时你发送一个释放并且reatinCount从2变为1.
所以要么你喜欢这样做
ObjClass.classArr = [[NSMutableArray alloc]init];
[ObjClass.classArr release];
使其保留计数为1
或者你可以这样做,这是实际发生的情况
classArr = [[NSMutableArray alloc] init];
指定没有属性的ivar,使retainCount为1。