我试图通过从plist中获取样本数据来将样本数据插入到核心数据中。 但是这些数据没有以Ordered方式插入。
以下是我的plist结构。
以下是我尝试的代码。
NSArray *aArray = [NSArray arrayWithContentsOfFile:[[NSBundle mainBundle]pathForResource:@"SampleData" ofType:@"plist"]];
for (NSDictionary *aDict in aArray )
{
[aDict enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop)
{
//--- UPDTATE -->>
// while debugging I found one issue that -
//Here "obj" has three array - Sample List 1C,Sample List 1A,Sample List 1B
// This should be Sample List 1A,Sample List 1B,Sample List 1C
NSDictionary *aSubDict = (NSDictionary *)obj;
NSMutableArray *aMutCheckpoint = [NSMutableArray array];
//.… below is my logic for core data insertion…
}];
}
任何人都可以建议我在插入数据时如何获得有序值。
答案 0 :(得分:2)
如果要以固定顺序从NSDictionary
检索值,则需要订购用于检索这些值的键。这是因为词典基本上是无序的数据结构。
所以这是一种方式(还有其他方法对键进行排序):
for (NSDictionary *aDict in aArray)
{
NSArray *sortedKeys = [[aDict allKeys] sortedArrayUsingSelector:@selector(compare:)];
for (NSString *key in sortedKeys)
{
id obj = aDict[key];
// etc.
}
}