我试图让我的获取数据始终保持相同的顺序,因为在我请求的所有时间,他都会得到另一个排序数组,所以我试图按 ID 排序,但我做不到。
我的情况:我有 2 个模型,FORM 和 FORMCOMPONENT 1 FORM 有很多 FORMCOMPONENT 当我这样做时:
Form *form = ...;
[form formComponents]; //I get all the components but each time I run I get with a differente order
如果我没有任何 ORDER 字段,我想如何订购这个?在 android 上,我使用 ID 进行了此操作。这就是为什么我在此提案中没有任何字段。
我尝试使用 sortWithComparator 在数组中排序,但我不能这样做,因为我不允许获取数字 ID(只有数字,而不是他用 [obj objectID] 给我的整个字符串)。这很有趣,因为当我使用 sqlite3 来查看数据库时,那里只有数字。
我想到的另一种方法是通过新请求直接获取 FORMCOMPONENT,而不是通过 FORM one([form formComponents]),如下所示:
AppDelegate *appDelegate = [[UIApplication sharedApplication] 委托];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"FormComponent" inManagedObjectContext:[appDelegate managedObjectContext]];
NSFetchRequest *request = [[NSFetchRequest alloc] init];
[request setEntity:entity];
//SOME PREDICATE WITH THE FORM
[request setPredicate:predicate];
NSError *error = nil;
NSMutableArray *arrayComps = (NSMutableArray*) [[appDelegate managedObjectContext] executeFetchRequest:request error:&error];
那么,有人有想法吗?谢谢。
- - 编辑 - -
PS:我不想避免为订单创建另一个字段的问题。如果我没有任何其他解决方案,那么我会这样做。