当NSManagedObjectContext
即将插入对象时,是否有任何方式可以获得通知,然后阻止此操作?也许像-shouldInsertObject:
之类的方法。
我正在创建我的应用程序的精简版本,并希望某个实体最多有三个对象。我不想在我创建该实体的新实例的任何地方查看我的代码并添加if
,而是想在一个地方阻止它。
我查看了NSManagedObjectContextWillSaveNotification
和NSManagedObjectContextObjectsDidChangeNotification
通知,但它们都不合适。发布这些通知后,已添加对象。
答案 0 :(得分:1)
也许您可以利用Core Data在插入时不会将实体存储到商店,这只有在您保存上下文时才会发生。因此,在保存上下文的方法中,您可以构建fetchRequest并获取商店中已有的实体数量:
- (NSUInteger)countForFetchRequest:(NSFetchRequest *)request error:(NSError **)error
如果这是三个或更多,只需使用以下方法获取尚未保存的对象:
- (NSSet *)insertedObjects
这是一个包含已插入但尚未保留到商店的对象的集合,并删除它们。 (警告用户,要求他们购买完整版等。)