只是学习和尝试新事物。我想知道是否有更好的方法来编写此语句或修改字典中的数组。寻找格式,内存和效率方面的建议:
NSMutableArray *arrayCopy = [self.sortedTimeZonesDictionary objectForKey:currentTimeZone.sectionKey];
[arrayCopy addObject:currentTimeZone];
[self.sortedTimeZonesDictionary setObject:arrayCopy forKey:currentTimeZone.sectionKey];
我的字典定义为:
@property (strong, nonatomic) NSMutableDictionary *sortedTimeZonesDictionary;
并在每个键内部使用数组进行分配和初始化。
最佳答案
您只能这样做:
[[self.sortedTimeZonesDictionary objectForKey:currentTimeZone.sectionKey] addObject:currentTimeZone];
请记住,您使用了指针,因此可以说NSMutableDictionary具有指向ArrayA的指针,您只需要向ArrayA添加一个对象。
在示例中,您要执行的操作是使
arrayCopy
指向与NSMutableDictionary对象相同的内存地址,然后在该内存地址的数组中添加一个新对象。由于arrayCopy
和self.sortedTimeZonesDictionary[currentTimeZone.sectionKey]
指向相同的地址,所以最后一条指令将无效。关于ios - 修改NSMutableDictionary内部的NSMutableArray的有效方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26242800/