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

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对象相同的内存地址,然后在该内存地址的数组中添加一个新对象。由于arrayCopyself.sortedTimeZonesDictionary[currentTimeZone.sectionKey]指向相同的地址,所以最后一条指令将无效。

关于ios - 修改NSMutableDictionary内部的NSMutableArray的有效方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26242800/

10-09 16:31