我无法调试NSFetchedResultsControllerDelegate
行为。
我的NSFetchedResultsController
有一个关于Object1
实体的获取请求。无论何时触摸单元格,我都会创建(并保存)与Object2
实体的新关系(如果已存在则使用)。
我的问题是controller:didChangeObject:atIndexPath:forChangeType:newIndexPath:
在创建这样的关系时被随机调用(意思是,有时它被调用,有时它不会被调用)。
我的代码创建关系正在使用MagicalRecord:
+ (void)createOrUpdateRelationship:(NSDictionary *)userInfo
forObject1:(NSManagedObject1 *)object1 {
[MagicalRecord saveWithBlock:^(NSManagedObjectContext *localContext) {
NSManagedObject2 *object2 = [NSManagedObject2 fetchObject2ForObject1WithID:object1.ID
inContext:localContext];
if (!object2) {
object2 = [NSManagedObject2 MR_createEntityInContext:localContext];
object2.createdAt = [NSDate date];
}
object2.updatedAt = [NSDate date];
// Store attributes from userInfo
object2.object1 = [object1 MR_inContext:localContext];
} completion:^(BOOL contextDidSave, NSError *error) {
// Celebrate
}];
}
知道我能做错什么吗?
答案 0 :(得分:0)
Dirty Henry,
Object1与Object2具有一对一的关系,而Object2与Object1具有反向关系:)
因此,每当您更改任何这些对象的关系值时,其他对象也将被修改:)因此NSFetchedResultsController被触发:)这很常见:)
您无法跳过这些更改。
{{1}}