草庐IT

nsfetchedresultscontroller

全部标签

ios - 基于数组对 NSFetchedResultsController 结果进行排序?

我想构建一个基于数组内容的NSPredicate或NSSortDescriptor(核心数据搜索)。该数组将按正确顺序由userId:s组成:[1,2,5,3];我想以相同的顺序显示我的NSFetchedResultsController的结果。所以我会:获得合适的用户(我已经做到了)根据我使用userIds排序的数组对用户列表进行排序。这可能吗,我该怎么做? 最佳答案 我认为这是不可能的。对提取请求的结果进行排序(对于基于SQLite的存储)是在SQLite级别完成的,并且只能使用存储在数据库中的持久属性。排序描述符不能使用Obj

ios - NSFetchedResultsController 提供 TableView ,同时同一持久存储的后台更新导致死锁

仍在努力将应用从每次使用或显示信息时下载信息转变为使用CoreData(由MagicalRecord提供)在手机上缓存信息。这是在iOS7上因为我们没有设置数据推送系统来在后端发生某些数据更改时自动更新手机的缓存数据,所以在过去的几个月里我一直在思考(因为我们致力于其他方面的工作)应用程序)如何管理在手机上保留数据的本地副本并能够在缓存中拥有最新数据。我意识到,只要我仍然每次都获取数据:-(我可以使用手机的CoreData支持的数据缓存来显示和使用,并且只需使用数据的获取来更新手机上的数据库。所以我一直在将主要数据对象从构成完整对象的下载数据转换为这些主要数据对象是CoreData对象

iphone - NSFetchedResultsController 错误 : 'NSInternalInconsistencyException' , 原因: 'no object at index 1 in section at index 0'

我有一个使用tableview和NSFetchedResultsController的应用程序。我收到错误:Seriousapplicationerror.ExceptionwascaughtduringCoreDatachangeprocessing.ThisisusuallyabugwithinanobserverofNSManagedObjectContextObjectsDidChangeNotification.Terminatingappduetouncaughtexception'NSInternalInconsistencyException',reason:'noob

ios - NSFetchedResultsController 使用错误的更新类型进行更新

请在盲目地将此投票为重复之前查看评论。这不是一个重复的问题。首先-我使用MagicalRecord来获取核心数据。其次-我的UICollectionView填充了一个NSFetchedResultsController。NSFetchedResultsController的NSPredicate是...NSPredicate*eventPredicate=[NSPredicatepredicateWithFormat:@"event=%@",self.event];NSPredicate*deletedPredicate=[NSPredicatepredicateWithFormat:

ios - NSFetchedResultsController 排序错误

我正在开发一个基于Xcode的CoreData示例的项目。我有一个名为Entity的实体类,它带有一个updated键,它存储实体更新的时间戳,并且NSFetchResultsController设置为按降序排序:NSFetchRequest*fetchRequest=[[NSFetchRequestalloc]init];[fetchRequestsetEntity:[NSEntityDescriptionentityForName:@"Entity"inManagedObjectContext:_managedObjectContext]];[fetchRequestsetFetc

ios - NSFetchedResultsController 中的 NSPredicate 没有使用 Category 的 getter

我有一个名为seconds的具有int_32属性的属性。在一个类别中,我将该属性重新声明为只读并重写getter以从其他属性创建它。问题是当我使用[NSPredicatepredicateWithFormat:@"SELF.seconds>%i"];谓词不起作用,因为谓词未调用getter。它在我的其他代码中调用得很好,只是不在谓词中。任何人都知道为什么会发生这种情况或如何解决这个问题?(除了重新创建NSFetchedResultsController)。 最佳答案 谓词被转换为SQL并在商店上运行。它不运行您的任何代码。因此,您只

ios - NSFetchedResultsController 不使用 sectionNameKeyPath 的 transient 属性

使用Xcode8.3在Swift3中工作良好我正在进行一个项目,其中包含用于保存消息的核心数据。它根据时间对消息进行排序,并根据日期对消息进行分段。方法如下:letrequest=NSFetchRequest(entityName:"Message")letsortDiscriptor=NSSortDescriptor(key:"time",ascending:true)request.sortDescriptors=[sortDiscriptor]fetchedResultsController=NSFetchedResultsController(fetchRequest:requ

ios - 如果一个对象的属性不满足它的谓词,是否可以让 NSFetchedResultsController 删除一个对象?

我有一个由对象列表填充的NSFetchedResultsController支持的UICollectionViewController。每个对象都有一个名为deleted的BOOL属性。我的提取Controller使用以下谓词来过滤我的对象。[NSPredicatepredicateWithFormat:@"deleted==NO"];我的问题是,当我通过将对象标记为deleted=@YES来删除对象时。随后的didChangeObject:方法告诉我该对象已更新并且没有删除。并且该对象不会从CollectionView中删除。如果我退出并重新加载我的应用程序,该对象不会显示在Coll

ios - 使用支持的 NSFetchedResultsController 展开/折叠 UITableView 部分

letfrc=NSFetchedResultsController(fetchRequest:alertsFetchRequest,managedObjectContext:self.moc,sectionNameKeyPath:"formattedDateDue",cacheName:nil)当我使用NSFetchedResultsController对我的记录进行分区时,如何展开和折叠我的TableView中的部分?我看过很多解释展开和折叠单元格本身的教程,但没有看到任何关于使用fetchedresultsController生成的部分的内容。 最佳答案

ios - 缓存对 NSFetchedResultsController 有什么影响

我当然阅读了文档,但我不太明白“设置任何部分并排序内容”的含义。这些信息不是来自数据库吗?这是否意味着NSFetchedResultsController除了数据库索引之外还需要其他类型的索引?NSFetchedResultsController设置缓存时到底发生了什么?缓存是否只对静态数据有用?如果我的数据经常更新,我是否应该使用缓存?如何分析缓存的性能?我试过缓存,但看不到任何性能提升。我对-performFetch:进行了计时,但看到时间从0.018s(无缓存)增加到0.023s(有缓存)。我还对-objectAtIndexPath:进行了计时,并且只从0.000030(无缓存)