在iOS中以无序方式插入数据
我试图通过从plist获取样本数据,将其插入核心数据。 但这些数据并没有按顺序插入 下面是我的plist结构 下面是我尝试的代码在iOS中以无序方式插入数据,ios,nsdictionary,plist,objective-c-blocks,Ios,Nsdictionary,Plist,Objective C Blocks,我试图通过从plist获取样本数据,将其插入核心数据。 但这些数据并没有按顺序插入 下面是我的plist结构 下面是我尝试的代码 任何人都可以建议我如何在插入数据时在此处获取有序值。如果您希望以固定顺序从NSDictionary检索值,则需要对用于检索这些值的键进行排序。这是因为字典基本上是无序的数据结构 因此,这里有一种方法(还有其他排序键的方法): NSDictionary在存储键值对时不提供顺序—这就是集合和哈希映射/字典的方式work@iLearner没有什么。默认的实现可以很好地工作
任何人都可以建议我如何在插入数据时在此处获取有序值。如果您希望以固定顺序从
NSDictionary
检索值,则需要对用于检索这些值的键进行排序。这是因为字典基本上是无序的数据结构
因此,这里有一种方法(还有其他排序键的方法):
NSDictionary在存储键值对时不提供顺序—这就是集合和哈希映射/字典的方式work@iLearner没有什么。默认的实现可以很好地工作。我尝试了这个,但是仍然得到了与->3,1,2相同的无序序列,而我期望输出为1,2,3。请建议。
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…
}];
}
for (NSDictionary *aDict in aArray)
{
NSArray *sortedKeys = [[aDict allKeys] sortedArrayUsingSelector:@selector(compare:)];
for (NSString *key in sortedKeys)
{
id obj = aDict[key];
// etc.
}
}