2016-12-28 65 views
2

我只是想知道这两者之间的区别,我已经搜索但找不到任何东西,这里的任何机构都可以帮忙吗?NSMutableDictionary * dictionary = @ {}。mutableCopy VS NSMutableDictionary * dictionary = [NSMutableDictonary new]

NSMutableDictionary* dictionary = @{}.mutableCopy 

VS

NSMutableDictionary * dictionary = [NSMutableDictonary new] 
+2

第一个创建一个'NSDictionary'实例并发送'mutableCopy'方法给它,产生一个'NSMutableDictionary'实例。第二个直接创建一个“NSMutableDictionary”实例。顺便说一句,我更喜欢第二个:) – KudoCC

+1

@KudoCC'@ {}'不会构造一个新的'NSDictionary'实例,它会重用一个单例。但是,是的,第二个版本更直接,并且稍微更快(读起来:无关紧要)。 –

+0

@ItaiFerber是的,你是对的,只是测试。 – KudoCC

回答

3

第一个创建一个NSDictionary实例并发送mutableCopy方法给它,产生NSMutableDictionary实例。

第二个直接创建一个NSMutableDictionary实例。我喜欢的方式,第二个:)

作为@Itai Ferber的提到:

@ {}不会构建一个新的NSDictionary实例,它可以重复使用单。

这是实现细节,但它是正确的,你可以测试使用下面的代码:

NSLog(@"%p, %p", @{}, @{}); 

它将打印相同的地址。