我正在阅读另一个程序员的代码,所以我发现了这个:
@property(nonatomic, strong) NSArray *assets;
----
_assets = [@[] mutableCopy];
__block NSMutableArray *tmpAssets = [@[] mutableCopy];
这是一种诡计吗?为什么他将mutableCopy用于不可变数组assets
?为什么他不像以下那样创建它:
self.assets = [NSArray new];
__block NSMutableArray *tmpAssets = [NSMutableArray new];
答案 0 :(得分:1)
只是获取空可变数组的简写。
而不是[NSMutableArray alloc] init]
代写的代码略少 -
new
构造并没有被大多数Objective-C程序员真正使用,并且为了方便其他语言的新手而被添加。
请注意@[]
将创建一个(不可变的)NSArray
-
NSMutableArray
没有Objective-C literal。