我对 Objective-C 还很陌生,在内存管理方面遇到了很多麻烦,但我仍然了解一点。如果我有一个对象,例如 NSArray * myArray,我会这样做
myArray = [[NSArray alloc] initWithObjects:obj1,obj2,obj3,nil];
然后我正在做一些事情,我希望 myArray 包含新对象,然后我再次初始化它
[myArray initWithObjects:obj4,obj5,obj6, nil];
似乎它满足了我的需要,但从内存管理的角度来看它是否正确?它会增加保留计数吗?那我应该释放两次吗?
不要那样做!
一般来说,如果您想重置现有 Objective C 对象中的对象或事物,请创建并使用某种 Setter 方法。
再次为您的阵列不要这样做!您引用的“initWithObjects”方法可以方便地使用数组在其整个生命周期中填充的项目来初始化不可变(不可更改)数组。
对于您想要做的事情,只需使用 NSMutableArray 即可。下面列出了它的文档:
http://developer.apple.com/library/ios/#documentation/Cocoa/Reference/Foundation/Classes/NSMutableArray_Class/Reference/Reference.html http://developer.apple.com/library/ios/#documentation/Cocoa/Reference/Foundation/Classes/NSMutableArray_Class/Reference/Reference.html
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)