0

在使用绑定到核心数据 NSManagedObjects 的 UI 控件更新核心数据对象时,我突然遇到了一个奇怪的问题。

症状如下: - OutlineView 显示分层对象列表 - 详细视图显示所选对象的数据字段,其中包括文本字段、日期等。 - 在详细视图中进行更新时,这些将反映在 OutlineView (例如,在 OutlineView 中使用了 diplayName)。- 但是,当我保存更改时 managedObjectContext 告诉我没有要保存的更改。因此,出于某种原因,UI 不会让上下文知道事情发生了变化。- 鉴于绑定是在 IB 中完成的,我假设 UI 中的任何更改都会自动反映在 managedObjectContext 中 - 出于某种原因,其中一个字段似乎总是导致上下文识别出已经进行了更改,但其他字段没有。

如果有人对可能导致此问题的原因有所了解 - 是否有任何方法可以监视何时进行 UI 更改,例如更改文本字段中的文本,以及这些更改是否传播到 managedObjects。

编辑发现了问题——出于某种原因,我在核心数据实体的objective-c 类中将一些属性从@dynamic 更改为@synthesize。这是破坏的东西!

4

1 回答 1

0

IBOutlets 需要连接到回调,以便知道更改。除非您将其连接起来,否则他们不会报告更改。因此,即使 textField.text != oldText,也没有关系,除非您进行该更新,将其保存到实体中,然后查看它是否识别

于 2013-08-08T01:23:39.237 回答