Objective c 调用save后,ManagedObject属性值更改为意外值

Objective c 调用save后,ManagedObject属性值更改为意外值,objective-c,core-data,nsmanagedobject,nsmanagedobjectcontext,Objective C,Core Data,Nsmanagedobject,Nsmanagedobjectcontext,我的核心数据模型中有一个Integer16类型的属性synched。我正在尝试将synced的值设置为[NSNumber numberWithBool:YES],当该值与我的服务器上的值同步时,就像我在我的应用程序中的许多其他托管对象子类上所做的一样。问题是,对于这个特定的类,每当我调用[context save://code>,该值就会重置为[NSNumber numberWithBool:NO] 我的怀疑是,我的代码中可能有另一个该对象的实例已同步设置为“否”,但我相当肯定情况并非如此。有人

我的核心数据模型中有一个Integer16类型的属性
synched
。我正在尝试将synced的值设置为
[NSNumber numberWithBool:YES]
,当该值与我的服务器上的值同步时,就像我在我的应用程序中的许多其他托管对象子类上所做的一样。问题是,对于这个特定的类,每当我调用
[context save://code>,该值就会重置为
[NSNumber numberWithBool:NO]

我的怀疑是,我的代码中可能有另一个该对象的实例已同步设置为“否”,但我相当肯定情况并非如此。有人能给我一些建议来帮助解决这个问题吗


谢谢

没有任何真正的代码有点难,但您可以尝试:

重写setter并放置断点,以便在调用它时可以看到它

- (void)set<#Capitalized property name#>:(<#Property type#> *)value
{
    [self willChangeValueForKey:@"<#Property name#>"];
    [self setPrimitiveValue:value forKey:@"<#Property name#>"];
    [self didChangeValueForKey:@"<#Property name#>"];
}

确保未使用任何更改值的内容覆盖
willSave



检查它是否确实是保存/获取的同一对象?

当您可以使用
布尔值时,为什么要使用
整数16
?我不知道我为什么做出这样的决定。。。可能没有什么好的理由。不过,我认为更改类型不会解决问题。在保存之前,您是否确认
synced
实际上已设置为
YES
YES,我已确认。我设置为是,记录,保存,然后再次记录。第一个日志是YES,第二个是NOyou得到了最后一个建议--我忘了我正在重写willSave并更改synced的值。非常感谢!
[theObject addObserver:theObserver forKeyPath:@"keyPath" options:0 context:nil];