我知道我可以创建一个NSArray
with@[@"foo", @"bar"]
或一个NSDictionary
with @{@0 : @"foo", @1 : @"bar"}
。
是否有用于创建 anNSMutableArray
或 an的文字语法NSMutableDictionary
?
我知道我可以创建一个NSArray
with@[@"foo", @"bar"]
或一个NSDictionary
with @{@0 : @"foo", @1 : @"bar"}
。
是否有用于创建 anNSMutableArray
或 an的文字语法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
速度非常快。