使用array或alloc init初始化NSMutableArray

www*_*w40 -4 initialization objective-c nsmutablearray

我是Obejtive C的新手,所以当时我正在查看很多示例代码,我注意到人们初始化他们的NSMutableArray的方式不同.

NSMutableArray *items = [NSMutableArray array];
Run Code Online (Sandbox Code Playgroud)

要么

NSMutableArray *items = [[NSMutableArray alloc] init];
Run Code Online (Sandbox Code Playgroud)

在这两行中,您最终得到一个NSMutableArray对象.
它们之间有什么区别或它们完全相同?

Gav*_*vin 6

它们之间的主要区别在于您是否使用ARC(自动参考计数).第一个返回一个保留和自动释放的对象.第二个返回仅保留的对象.因此,在第一种情况下,如果您希望将其保留的时间超过当前运行循环,则需要保留它.在第二种情况下,如果您不想保留它,您可能希望释放或自动释放它.

现在我们有ARC,这改变了一些事情.基本上,在ARC代码中,使用这些中的哪一个并不重要.