我主要是在我的MAC上进行开发,有时我会使用我的macbook将我的项目文件带到USB-Stick上,所以我可以在不在家的情况下处理事情。
到目前为止它工作得很好,我得到了一堆语义错误,说:
"editSetting.settingAnimateSelection = @NO;"
错误:在'Setting *'
类型的对象上找不到“属性'editSetting.settingAnimateSelection'settingAnimateSelection以及我添加到CoreData结构中的其他两个项目,当我添加它们时,我在我的mac上生成了NSManagedSubclass,它们在
中声明/定义setting.h
@property (nonatomic, retain) NSNumber * settingAnimateSelection;
也在
setting.m
@dynamic settingAnimateSelection;
除了一大堆其他属性外,没有任何关系。 一切都适用于我的iMAC,但只要我将项目文件夹复制到MacBook上, 它将不再运行并显示所有那些语义错误告诉我它找不到它们。
我已经做了CLEAN并尝试从模拟器和手机中删除我的应用程序,但没有任何帮助。
有什么想法吗?谢谢你们!
答案 0 :(得分:0)
解决方案:您的源树中可能有多个具有相同名称的文件实例。搜索那些并从Xcode项目中删除重复项(也可能是树)。
原因:重新生成NSManagedSubclass文件时存在一个陷阱......
新生成的文件(如setting.h
和co。)可能(通常)不会与旧文件位于同一目录中。这些可以很容易地在嵌套目录中结束,或者已经被用户移动到不同的位置。
如果是这样,您的源树中有多个版本的源文件同名。
奇怪的是,用UI轻松打开的给定源文件不一定是编译器找到的源文件。
如何避免NSManagedSubclass陷阱:
Xcode>编辑>创建NSManagedObject子类...>选择您要管理的实体的数据模型>导航到dest目录(您应该看到旧文件)> [创建]
您应该收到警告:以下文件已经存在并将被替换:...
附加说明:
答案 1 :(得分:0)
最佳解决方案是使用托管版本控制系统。然后做结帐,提交和合并。
默认情况下,新项目会获得项目本地的本地存储库。您的其他选项是停止使用本地存储库或保存快照,从管理器导出快照,然后将该快照共享到其他计算机。
到目前为止,托管存储库从长远来看是最不容易的。