我的核心数据模型中有一个Integer16类型的属性synced
。我试图将同步的值设置为[NSNumber numberWithBool:YES]
,当值与我的服务器上的值同步时,就像我在我的应用程序中的许多其他托管对象子类上一样。问题是,对于此特定课程,只要我拨打[context save:]
,该值就会重置为[NSNumber numberWithBool:NO]
。
我的怀疑是我的代码中可能有另一个该对象的实例已经同步设置为NO,但我相当确定不是这种情况。有人可以给我一些建议来帮助解决这个问题吗?
谢谢!
答案 0 :(得分:1)
没有任何真正的代码,但有些事情可以尝试:
覆盖setter并放置一个断点,以便查看它何时被调用。
- (void)set<#Capitalized property name#>:(<#Property type#> *)value
{
[self willChangeValueForKey:@"<#Property name#>"];
[self setPrimitiveValue:value forKey:@"<#Property name#>"];
[self didChangeValueForKey:@"<#Property name#>"];
}
或者尝试将KVO用于相同目的(请参阅更改值的时间)
[theObject addObserver:theObserver forKeyPath:@"keyPath" options:0 context:nil];
确保您没有使用正在更改值的任何内容覆盖willSave
。
检查它是否与保存/获取的对象完全相同?