问题描述
|
我只是想知道:如果将对象的保留计数添加到Objective-C中的数组或字典中,它会增加吗?将特定对象添加到数组或字典后,是否可以立即释放它?
解决方法
哈里普拉萨德
NS [此处为集合名称]保留添加到其中的对象,如NSResponder所述。其他一些事实:
对您的评论“我可以释放它吗?
添加“后,简短的答案是
是。通常我会
autorelease
必然要包含在
集合,并且在集合外部不需要。
当您删除
集合中的对象
参考计数递减。如果
您想确保它不会
从内存中删除(下一个池
扫)您需要保留
宾语。
,是的,它将增加您添加的对象的保留计数,这就是为什么您可以在将对象添加到数组后立即释放该对象。
NSObject obj1;
obj1=[[NSObject alloc] init];
//obj1\'s retain count is 1 here.
[array1 addobject:obj1];
//obj1\'s retain count incremented by 1,so the total retain count is 2.
[obj1 release];
//obj1\'s retain count decremented by 1,so the total retain count is 1.
array1
将保留对象,直到未释放array1本身为止。
,NSArray保留添加到其中的任何对象。