【发布时间】:2016-04-27 07:20:05
【问题描述】:
我有一个 NSDictionary,它正在迭代并将数据保存到核心数据,如下所示,
NSDictionary *details = [valueDict objectForKey:@"shipment_master"];
for (NSDictionary *response in details) {
NSManagedObjectContext *context = [self managedObjectContext];
// remove all rows
[context performBlockAndWait:^{
// add new row(s)
NSManagedObject *master = [NSEntityDescription insertNewObjectForEntityForName:@"ShipmentMaster" inManagedObjectContext:context];
NSError *error;
[master setValue:[details objectForKey:response] forKey:@"values"];
// save MOC
if ([context hasChanges]) {
(void)[context save:&error];
}
}];
}
问题是在循环 nsdictionary 时更改了顺序。例如 a 出现在 b 然后 c , d 等在字典中,但是当我迭代它并保存它时,顺序正在改变,我怎样才能保持顺序?
【问题讨论】:
-
字典中没有顺序...你需要元组数组
-
你能参考我的代码解释一下吗?谢谢
-
NSDictionary 将其键存储在哈希表中,该哈希表在设计上是无序的。这种缺乏顺序是哈希表存储的基础,所以是的。
标签: ios objective-c nsdictionary