NSArraywith@[@"foo", @"bar"]またはNSDictionarywithを作成できることはわかってい@{@0 : @"foo", @1 : @"bar"}ます。
NSMutableArrayまたはを作成するための文字通りの構文はありますNSMutableDictionaryか?
NSArraywith@[@"foo", @"bar"]またはNSDictionarywithを作成できることはわかってい@{@0 : @"foo", @1 : @"bar"}ます。
NSMutableArrayまたはを作成するための文字通りの構文はありますNSMutableDictionaryか?
組み込みの方法はありませんが、私は通常mutableCopy次のように使用します。
NSMutableArray *array = [@[ @"1", @"2", @"3" ] mutableCopy];
いいえ。どちらかを作成するための構文がないのと同じようにNSMutableString。可変オブジェクトは、リテラル値には特に適していません。
しかし、NSMutableArrayまたはNSMutableDictionaryを作成するための文字通りの構文はありますか?
いいえ。最良の代替案:
[@[ @"foo", @"bar"] mutableCopy]
はい。しかし、完全ではありません。これを見てください;
NSMutableArray *list = [@[] mutableCopy];
これにより、変更不可能な配列が作成され、を返す@[]呼び出しが行われます。の代わりに、任意の配列リテラルを指定できます。mutableCopyNSMutableArray *@[]
配列と辞書のネストされたリテラルがある場合は、を実行することでこれを完全に変更可能なバージョンに変えることができます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が非常に速いことです。