[NSArray array] 和 [[NSArray alloc] init] 有什么区别
Whats the difference between [NSArray array] and [[NSArray alloc] init]
控制器 dealloc 时,使用 [NSArray array] 方法创建的变量未完全 dealloc
array
是一个 class 方法,它本身会生成一个自动释放的数组,这意味着您不必(也不应该)手动释放它。由于 iOS 5 带有 ARC,您不必担心释放处理。
[NSArray Array] 甚至无法编译。你可能是指 [NSArray 数组]。
[NSArray array] 是一个方便的构造函数,它 returns 是一个自动释放的对象。 Cocoa 和人们自己的代码中有很多方便的构造函数。
坦率地说,你的问题的其余部分没有意义。
[NSArray Array] class 方法本身会生成一个自动释放的数组,这意味着您不必(也不应该)手动 release
它。
[NSArray Array]是一个构造函数售卖
但是来到ARC(Automatic reference counting)之后就没有了release
。所以 alloc-init
和构造函数出售 autoreleased
对象之间的区别实际上变得无关紧要了。
[NSArray array] 这种类型的方法在 objective c 中称为便捷方法,其中 returns 我们不拥有的对象,它们是自动释放对象。但是如果你想在这种情况下拥有对象的所有权,你必须使用 alloc init 方法来创建任何对象/
弧下
[NSArray array]
和 [[NSArray alloc] init]
做同样的事情。 Return 一个不可变的空数组。 ARC 负责内存管理。
无 ARC。
[NSArray array]
returns 将自动释放的数组。
[[NSArray alloc] init]
returns 一个数组,当你不再需要它时,你必须通过调用 release
来处理内存管理。
备注
实例化空不可变数组的用处不大。检查 NSArray's
其他将项目作为参数的初始化程序。在这种情况下,您有一个包含项目的不可变数组。但同样,这完全取决于您的需求。
控制器 dealloc 时,使用 [NSArray array] 方法创建的变量未完全 dealloc
array
是一个 class 方法,它本身会生成一个自动释放的数组,这意味着您不必(也不应该)手动释放它。由于 iOS 5 带有 ARC,您不必担心释放处理。
[NSArray Array] 甚至无法编译。你可能是指 [NSArray 数组]。
[NSArray array] 是一个方便的构造函数,它 returns 是一个自动释放的对象。 Cocoa 和人们自己的代码中有很多方便的构造函数。
坦率地说,你的问题的其余部分没有意义。
[NSArray Array] class 方法本身会生成一个自动释放的数组,这意味着您不必(也不应该)手动 release
它。
[NSArray Array]是一个构造函数售卖
但是来到ARC(Automatic reference counting)之后就没有了release
。所以 alloc-init
和构造函数出售 autoreleased
对象之间的区别实际上变得无关紧要了。
[NSArray array] 这种类型的方法在 objective c 中称为便捷方法,其中 returns 我们不拥有的对象,它们是自动释放对象。但是如果你想在这种情况下拥有对象的所有权,你必须使用 alloc init 方法来创建任何对象/
弧下
[NSArray array]
和 [[NSArray alloc] init]
做同样的事情。 Return 一个不可变的空数组。 ARC 负责内存管理。
无 ARC。
[NSArray array]
returns 将自动释放的数组。
[[NSArray alloc] init]
returns 一个数组,当你不再需要它时,你必须通过调用 release
来处理内存管理。
备注
实例化空不可变数组的用处不大。检查 NSArray's
其他将项目作为参数的初始化程序。在这种情况下,您有一个包含项目的不可变数组。但同样,这完全取决于您的需求。