我只是想知道:如果将对象的保留计数添加到Objective-C中的数组或字典中,它是否会增加?我可以在将特定对象添加到数组或字典后立即释放它吗?
答案 0 :(得分:5)
是的,它会增加您添加的对象的保留计数,这就是为什么您可以在将对象添加到数组后立即释放该对象的原因。
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本身未被释放。
答案 1 :(得分:4)
Hariprasad,
NS [此处的集合名称]保留添加到它们的对象,如NSResponder所述。其他一些事实:
autorelease
受到遏制的约束
收集,并不需要在集合之外。 答案 2 :(得分:2)
NSArrays会保留添加到其中的任何对象。