2

我正在阅读另一个程序员的代码,所以我发现了这个:

@property(nonatomic, strong) NSArray *assets;
----
   _assets = [@[] mutableCopy];
    __block NSMutableArray *tmpAssets = [@[] mutableCopy];

这是某种诡计吗?为什么他将 mutableCopy 用于不可变数组assets?他为什么不像这样创建它:

self.assets = [NSArray new];
__block NSMutableArray *tmpAssets = [NSMutableArray new];

?

4

1 回答 1

1

只是获取一个空的可变数组的简写。

而不是[NSMutableArray alloc] init]要编写的代码稍微少一些-

new大多数 Objective-C 程序员并没有真正使用这个结构,它是为了方便其他语言的新手而添加的。

请注意,这@[]将创建一个(不可变的)NSArray-
没有针对.NSMutableArray

于 2015-06-17T08:01:04.087 回答