gpt4 book ai didi

ios - Magicalrecord 上的 NSPredicate 检索旧结果

转载 作者:行者123 更新时间:2023-11-29 13:10:12 24 4
gpt4 key购买 nike

我不知道这是怎么发生的,但我有一个相当复杂的 NSPredicate:

NSString rentalStatus = @"Available";
[NSPredicate predicateWithFormat:@"(status != nil) AND (status == %@)", rentalStatus]

然后我搜索:

rentals = [RegisterSaleRental findAllSortedBy:@"rental_due_date" ascending:NO withPredicate:predicate];

一切都很好,但如果我快速将状态从可用设置为已租,对象在屏幕上显示为已租(因此状态已设置)但是当我尝试过滤已租时:

NSString rentalStatus = @"Rented";
[NSPredicate predicateWithFormat:@"(status != nil) AND (status == %@)", rentalStatus]

它不显示我刚设置为已租用的对象 :( 如果我再次过滤可用,它确实会显示,但我在结果中获得的对象状态是已租用,所以它基本上是通过旧数据搜索。

当我保存核心数据时:

[[NSManagedObjectContext defaultContext] saveToPersistentStoreAndWait];

确实如此,而且效果非常好。我的问题是每次更改状态或其他任何内容之前是否都必须保存?我找不到任何需要的地方。谢谢!

更新(核心数据设置代码)

// Configure MagicalRecord to use RestKit's Core Data stack
[NSPersistentStoreCoordinator MR_setDefaultStoreCoordinator:managedObjectStore.persistentStoreCoordinator];
[NSManagedObjectContext MR_setRootSavingContext:managedObjectStore.persistentStoreManagedObjectContext];
[NSManagedObjectContext MR_setDefaultContext:managedObjectStore.mainQueueManagedObjectContext];

最佳答案

Probanly Magical Record 使用核心数据的提取请求进行提取。这个请求总是会传到商店。因此,它只能找到处于已保存状态的已保存数据。

对于 Core Data 的获取请求,您可以通过将 includePendingChanges 设置为 YES 来更改此行为。我认为 Magical Record 支持类似的功能。

关于ios - Magicalrecord 上的 NSPredicate 检索旧结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17579751/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com