看起来最近的 Xcode 3.2 添加了一些(我认为)Snow Leopard 之前缺乏的代码生成细节。
我采取了以下步骤:
定义一个包含几个实体的简单 .xcdatamodel 模型,包括一对一(可逆)一:多关系(一个
Endpoint
具有许多Subscription
对象)文件 -> 新建并选择(无图标)“托管对象类”。从那个向导中,我选择了我的类(class),然后我就开始参加比赛了。
直到,也就是说,我尝试构建。我得到这个结果但无法弄清楚:
Undefined symbols: "_OBJC_METACLASS_$_NSManagedObject", referenced from: _OBJC_METACLASS_$_Subscription in Subscription-B5BE258DF28BC03B.o _OBJC_METACLASS_$_Endpoint in Endpoint.o "_OBJC_CLASS_$_NSManagedObject", referenced from: _OBJC_CLASS_$_Subscription in Subscription-B5BE258DF28BC03B.o _OBJC_CLASS_$_Endpoint in Endpoint.o ld: symbol(s) not found collect2: ld returned 1 exit status
我希望得到什么帮助:
如果有人对我刚刚做错了什么有任何想法,那就太棒了。
看起来让 Xcode *重新*生成您的类的唯一方法是"file"->“新建”并再次替换它们,这(除其他外)会导致对新类和您的类的重复引用。旧的类文件无用地留在项目中已移出的文件夹中。有人知道如何正确保持这些同步吗?我还没有找到任何涵盖这些新内容的 Apple 文档。
最佳答案
您是否将 CoreData.framework 添加到您的项目中(或不小心将其删除)?这可能是链接错误的根源。
另外,我建议您查看 Wolf Rentsch 的 MOGenerator。这是一个多 使用代沟模式的更强大的核心数据类代码生成器。每次保存 xcdatamodel 时,它都可以自动重新生成类,同时保留自定义代码。
关于iphone - Xcode 3.2.1 - 为什么核心数据生成的类会导致构建错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1551242/