Bri*_*ich 4 sorting objective-c nssortdescriptor nsfetchedresultscontroller ios
我有一个循环遍历数据数组的tableview.数据是一组可能附加提醒时间的联系人.例如:
现在,它reminderDate以递增的方式通过core-data属性对tableview进行排序.它工作半正确.唯一的问题是,我希望将物品NULL reminderDate扔到最后NSFetchedResultsController而不是开头.
理想情况下,它看起来像这样:
我不能使用比较,NSSortDescriptor因为它不受支持NSFetchedResultsController.此外,在我从中获取结果之后,我宁愿不执行排序,NSFetchedResultsController而是在我进行查询之前.
这是我使用的当前代码:
NSFetchRequest *fetchRequest = [NSFetchRequest fetchRequestWithEntityName:@"User"];
NSSortDescriptor *sortByDate = [NSSortDescriptor sortDescriptorWithKey:@"reminderDate" ascending:YES];
[fetchRequest setSortDescriptors:@[sortByDate]];
self.fetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest
                                                                    managedObjectContext:context
                                                                      sectionNameKeyPath:nil
                                                                               cacheName:nil];
我相信我应该添加另一个sortDescriptor,但没有任何工作正常.
我最终做了他们在这里提到的事情:使用NSSortDescriptor将空白值保留在列表中
我创建了一个BOOL值,表示用户是否有提醒集.所以,我通过提醒,然后按日期排序.
NSSortDescriptor *sortByDate = [NSSortDescriptor sortDescriptorWithKey:@"reminderDate" ascending:YES];
NSSortDescriptor *sortByHasReminder = [NSSortDescriptor sortDescriptorWithKey:@"hasReminder" ascending:NO];
它运作良好.作为数据库爱好者,我讨厌有不必要的字段,但这是我用NSSFetchedResultsController做的最好的.
| 归档时间: | 
 | 
| 查看次数: | 739 次 | 
| 最近记录: |