Is there a literal syntax for mutable collections?
I know I can create an NSArray
with @[@"foo", @"bar"]
or an NSDictionary
with @{@0 : @"foo", @1 : @"bar"}
.
Is there a literal syntax for creating an NSMutableArray
or an NSMutableDictionary
?
Solution 1:
There isn't a built in way, but I just usually use mutableCopy
like this:
NSMutableArray *array = [@[ @"1", @"2", @"3" ] mutableCopy];
Solution 2:
No. Just as how there isn't a syntax for creating an NSMutableString
either. Mutable objects are not particularly suited to literal values.
Solution 3:
But, is there a literal syntax for creating an NSMutableArray or an NSMutableDictionary?
No. Best alternative:
[@[ @"foo", @"bar"] mutableCopy]
Solution 4:
Yes. But not quite. Take a look at this;
NSMutableArray *list = [@[] mutableCopy];
This creates a non-mutable array @[]
and calls mutableCopy
which returns a NSMutableArray *
. In place of @[]
, you can give any array literal.