我不知道这是怎么回事,但我有一个相当复杂的 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];