// deleted all datas for entity before adding
for (int i=0; i<[tempArray count]; i+=3)
{
userData=(UserData *)[NSEntityDescription insertNewObjectForEntityForName:@"UserData" inManagedObjectContext:managedObjectContext];
[userData setUserIcon:tempArray[i]];
[userData setUserID:tempArray[i+1]];
[userData setUserName:tempArray[i+2]];
NSLog(@"loop values%@",[userData userName]);
}
记录的值以正确的顺序提供名称。但存储在核心数据中的值的顺序不正确。例如。循环中的值显示(苹果,球,猫,狗)但核心数据存储值显示(苹果,猫,球,狗)。我通过以下方式检查核心数据中的值:
NSFetchRequest *fetchRequest1 = [NSFetchRequest fetchRequestWithEntityName:@"UserData"];
fetchRequest1.resultType = NSDictionaryResultType;
[fetchRequest1 setPropertiesToFetch:[NSArray arrayWithObjects:@"userName", nil]];
fetchRequest1.returnsDistinctResults = YES;
NSArray *dictionaries1 = [self.managedObjectContext executeFetchRequest:fetchRequest1 error:nil];
NSLog (@"names after: %@",dictionaries1);
知道为什么订单不匹配???
另外,我可以将值添加到特定索引的核心数据中,以便我可以自己订购表吗?
或者我可以使用排序,但我应该排序整行,因为行中的属性彼此依赖。
如果您需要更多信息,请与我们联系。
答案 0 :(得分:0)
我同意之前的回答 - 基于插入顺序的设计没有实际意义,因为这样的订单无法保证且难以维护。 最佳实践是应用排序谓词。 例如,您可以转到this SO question