修改NSMutableDictionary中的NSMutableArray的有效方法

时间:2014-10-07 18:30:17

标签: ios nsmutablearray nsmutabledictionary

只是学习和尝试新事物。我想知道是否有更好的方法来编写这个语句,或者修改字典中的数组。寻找格式,记忆和效率建议:

NSMutableArray *arrayCopy = [self.sortedTimeZonesDictionary objectForKey:currentTimeZone.sectionKey];
[arrayCopy addObject:currentTimeZone];
[self.sortedTimeZonesDictionary setObject:arrayCopy forKey:currentTimeZone.sectionKey];

我的词典定义为:

@property (strong, nonatomic) NSMutableDictionary *sortedTimeZonesDictionary;

并使用每个键内部的数组进行分配和初始化。

1 个答案:

答案 0 :(得分:2)

你只能这样做:

[[self.sortedTimeZonesDictionary objectForKey:currentTimeZone.sectionKey] addObject:currentTimeZone];

请记住,您使用指针,所以假设您的NSMutableDictionary有一个指向ArrayA的指针,您只需要向ArrayA添加一个对象。

您在示例中所做的是使make arrayCopy指向与NSMutableDictionary对象相同的内存地址,然后在该内存地址的数组中添加一个新对象。自arrayCopyself.sortedTimeZonesDictionary[currentTimeZone.sectionKey]指向同一地址后,上一条指令不会产生任何影响。