NSArray
with@[@"foo", @"bar"]
またはNSDictionary
withを作成できることはわかってい@{@0 : @"foo", @1 : @"bar"}
ます。
NSMutableArray
またはを作成するための文字通りの構文はありますNSMutableDictionary
か?
NSArray
with@[@"foo", @"bar"]
またはNSDictionary
withを作成できることはわかってい@{@0 : @"foo", @1 : @"bar"}
ます。
NSMutableArray
またはを作成するための文字通りの構文はありますNSMutableDictionary
か?
組み込みの方法はありませんが、私は通常mutableCopy
次のように使用します。
NSMutableArray *array = [@[ @"1", @"2", @"3" ] mutableCopy];
いいえ。どちらかを作成するための構文がないのと同じようにNSMutableString
。可変オブジェクトは、リテラル値には特に適していません。
しかし、NSMutableArrayまたはNSMutableDictionaryを作成するための文字通りの構文はありますか?
いいえ。最良の代替案:
[@[ @"foo", @"bar"] mutableCopy]
はい。しかし、完全ではありません。これを見てください;
NSMutableArray *list = [@[] mutableCopy];
これにより、変更不可能な配列が作成され、を返す@[]
呼び出しが行われます。の代わりに、任意の配列リテラルを指定できます。mutableCopy
NSMutableArray *
@[]
配列と辞書のネストされたリテラルがある場合は、を実行することでこれを完全に変更可能なバージョンに変えることができますNSJSONSerialization
。例えば:
NSArray* array = @[ @{ @"call" : @{ @"devices" : @[ @"$(devices)" ] } } ];
NSData* data = [NSJSONSerialization dataWithJSONObject:array
options:0
error:nil];
NSJSONReadingOptions options = NSJSONReadingMutableContainers |
NSJSONReadingMutableLeaves;
NSMutableArray* mutableArray = [NSJSONSerialization JSONObjectWithData:data
options:options
error:nil];
少し回り道ですが、少なくとも自分でコードを書き出す必要はありません。そして良いことはそれNSJSONSerialization
が非常に速いことです。