Objective-C中的@[]和@{}是什么?
可能重复:Objective-C中的@[]和@{}是什么?,objective-c,nsmutablearray,equals,nsmutabledictionary,Objective C,Nsmutablearray,Equals,Nsmutabledictionary,可能重复: 我有一个关于@[]和@{}的问题 一些代码取自互联网: self.searches = [@[] mutableCopy]; self.searchResults = [@{} mutableCopy]; @[]是否等于[NSMutableDictionary] @{}是否等于[NSMutableArray] @{}等于[NSDictionary] @[]等于[NSArray数组] 因此,[@[]mutableCopy]创建一个空的不可变对象,然后创建它的mutableCop
我有一个关于
@[]
和@{}
的问题
一些代码取自互联网:
self.searches = [@[] mutableCopy];
self.searchResults = [@{} mutableCopy];
@[]
是否等于[NSMutableDictionary]
@{}
是否等于[NSMutableArray]
@{}
等于[NSDictionary]
@[]
等于[NSArray数组]
因此,[@[]mutableCopy]
创建一个空的不可变对象,然后创建它的mutableCopy。我认为你做这件事的效率不会降低
@[]
等于[NSArray数组]
或[[NSArray alloc]init]
@{}
等于[NSDictionary dictionary]
或[[NSDictionary alloc]init]
[@[]mutableCopy]
这样的事情。这将创建一个空的不可变数组并创建它的可变副本
结果与使用
[NSMutableDictionary]
或[[NSMutableDictionary alloc]init]
第一个@[]是创建数组的缩写,例如,以下两个元素的数组:
NSArray *array = @[ @"First", @"Second"];
第二个@{}创建字典,例如:
NSDictionary *dictionary = @{
@"first" : someValue,
@"second" : someValue,
};
是 啊它正在创建一个自动释放的对象,所以答案只有在使用arc时才是正确的。我假设任何在这个时候开始使用Objective-C的人都会使用arc,但这一点很好。是的。。我是从问题中抄来的;)有一篇帖子是关于
mutableCopy
与simplealloc/init
的性能,但我找不到它。。。