只是一个简短的问题:NSMutableArray -addObject:(id)对象方法是否保留了object-parameter?
谢谢
答案 0 :(得分:2)
是的,它会保留对象。释放阵列时将释放该对象。如果您要添加已分配给数组的对象,请确保在添加它们后将其释放。
Object *o = [[Object alloc]init];
NSMutableArray *array = [[NSMutableArray alloc] init];
[array addObject:o];
[o release];
[array release];
答案 1 :(得分:2)
是的,集合中的任何内容(集合,数组,字典)都将保留在集合中。当然,如果集合保留在第一位。
在集合中添加任何内容后,如果您是所有者,则需要将其释放。
答案 2 :(得分:0)
是。当它的保留计数达到零时,它还会释放contains中的所有对象。
答案 3 :(得分:0)
答案是肯定的。
将来,您可以通过以下方式测试这些情况。您可以使用以下方法找出对象的保留计数:
NSLog(@"Count: %d", [object retainCount]);
在将对象添加到数组之前和之后使用此代码以便自己查看。
我必须警告你,很多人建议不要使用retainCount。话虽这么说,我认为可以用它跟踪对象的持有量的增加和减少(比如在我的回答中),但不是很多。
不要依赖代码中的retainCount值;只需使用差异来跟踪分配和释放。