2
この2つの違いを知りたいだけですが、これで何も見つかりませんでした。NSMutableDictionary * dictionary = @ {}。mutableCopy VS NSMutableDictionary * dictionary = [NSMutableDictonary new]
NSMutableDictionary* dictionary = @{}.mutableCopy
VS
この2つの違いを知りたいだけですが、これで何も見つかりませんでした。NSMutableDictionary * dictionary = @ {}。mutableCopy VS NSMutableDictionary * dictionary = [NSMutableDictonary new]
NSMutableDictionary* dictionary = @{}.mutableCopy
VS
NSMutableDictionary * dictionary = [NSMutableDictonary new]
は、最初のものはNSDictionary
インスタンスを作成し、NSMutableDictionary
インスタンスを得、これにmutableCopy
方法を送ります。
2番目のインスタンスは、NSMutableDictionary
インスタンスを直接作成します。私は@Itaiファーバーは、上述したような方法により、第二1 :)
を好む:
を{} @それはシングルトンを再利用し、新しいNSDictionaryのインスタンスを作成しません。
これは実装の詳細ですが、それは正しいです、あなたは以下のコードを使用してテストすることができます。
NSLog(@"%p, %p", @{}, @{});
それは同じアドレスを表示します。
最初のインスタンスは 'NSDictionary'インスタンスを作成し、それに' mutableCopy'メソッドを送り、 'NSMutableDictionary'インスタンスを生成します。 2番目のメソッドは、 'NSMutableDictionary'インスタンスを直接作成します。 – KudoCC
@KudoCC '@ {}'は新しい 'NSDictionary'インスタンスを構築せず、シングルトンを再利用します。しかし、はい、第2のバージョンはより直接的であり、わずかに速く(読みにくいほど)速いです。 –
@ItaiFerberはい、あなたは正しく、ただテストされています。 – KudoCC