NSManagedObject @dynamic属性不再被识别

时间:2013-02-01 14:32:34

标签: ios xcode core-data object-model

我昨天扩展了我的“User”类,它是NSManagedObject的子类。我添加了一个名为“photoPath”的新属性,通常的方式:

@property (nonatomic, retain) NSString * photopath;
@dynamic photoPath;

我添加了新版本的数据模型,并成功实现了数据迁移。 一切都很完美!...从现在开始。今天,当我访问我的新属性时,应用程序崩溃并说:

-[User photoPath]: unrecognized selector sent to instance xxx

自昨天以来没有触及任何代码,我只关闭并重新打开Xcode。

那么可能是什么样的f ***魔术让一个应用程序工作一天并在第二天崩溃?我知道CoreData会生成一些像.momd这样的文件。我已经清理了一切。有什么建议吗?

似乎coreData停留在旧的对象模型上,我不知道为什么.....

编辑:

当我检查Project.sqlite文件时,“photoPath”列甚至不存在。有什么想法吗?

2 个答案:

答案 0 :(得分:1)

更改核心数据模型或子类后,我总是做两件事。 从设备/模拟器中删除应用程序的实例。 清理项目。

答案 1 :(得分:1)

OKAY

当然,在我的.xdatamodeld(版本化核心数据模型)下选择了好的版本,我在发布之前已经检查了三次。

但我仍然试图选择旧的,保存,重新选择新的,保存。

它有效......

很多,非常感谢Xcode让我放松了2个小时

编辑:每次关闭并重新打开我的项目时,问题都会回来。在启动应用程序之前,我总是必须执行上述过程。这很烦人。如果有人知道如何更好的解决方案,我会接受他的回答。