2016-12-28 66 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", @{}, @{}); 

它將打印相同的地址。