当控制器dealloc
时,使用[NSArray array]方法创建的变量不是完全dealloc答案 0 :(得分:3)
[NSArray array]
和[[NSArray alloc] init]
也是这样做的。返回一个不可变的空数组。 ARC负责内存管理。
[NSArray array]
返回一个将自动释放的数组。
[[NSArray alloc] init]
返回一个数组,您需要在内存管理方面进行处理,在您不再需要时调用release
。
实例化空的不可变数组几乎没有用处。检查NSArray's
其他将项目作为参数的初始值设定项。在这种情况下,您有一个包含项目的不可变数组。但同样,这一切都取决于您的需求。
答案 1 :(得分:1)
[NSArray Array]类方法本身会生成一个自动释放的数组,这意味着您不必手动(也不应该)release
它。
[NSArray Array]是一个构造函数。
但是在进入ARC(自动引用计数)之后,没有release
之类的东西。因此,alloc-init
与出售autoreleased
对象的构造函数之间的差异实际上变得无关紧要。
答案 2 :(得分:1)
[NSArray数组]目标c中的这种类型的方法称为便捷方法,它返回我们不拥有的对象,它们是自动释放对象。但是如果你想在这种情况下拥有对象的所有权,你必须使用alloc init方法来创建任何对象/
答案 3 :(得分:0)
array
是一个类方法,它自己生成一个自动释放的数组,这意味着你不必(也不应该)手动释放它。从带有ARC的iOS 5开始,您不必担心解除分配处理。
答案 4 :(得分:-1)
[NSArray Array]甚至没有编译。你可能意味着[NSArray数组]。
[NSArray数组]是一个便利构造函数,它返回一个自动释放的对象。 Cocoa和人们自己的代码中有许多便利构造函数。
坦白说,你的其余问题没有意义。