Xcode 3.2.1 - 为什么生成核心数据的类会导致构建错误?

时间:2009-10-11 17:37:15

标签: iphone xcode core-data

看起来最近的Xcode 3.2增加了一些代码生成细节(我认为)缺少雪豹之前。

我采取了以下步骤:

  1. 使用一些实体定义一个简单的.xcdatamodel模型,包括一个(不可逆)一个:多个关系(Endpoint有很多Subscription个对象)

  2. 档案 - >新建并选择(无图标)“托管对象类”。从那个向导,我选择了我的课程,我参加了比赛。

  3. 直到,我试图建立。我得到了这个结果,但无法弄明白:

  4.   

    未定义的符号:     “_OBJC_METACLASS _ $ _ NSManagedObject”,引自:         _OBJC_METACLASS _ $ _订阅-B5BE258DF28BC03B.o中的订阅         _OBJC_METACLASS _ $ _ Endpoint.o中的端点     “_OBJC_CLASS _ $ _ NSManagedObject”,引自:         _OBJC_CLASS _ $ _订阅-B5BE258DF28BC03B.o中的订阅         _OBJC_CLASS _ $ _ Endpoint.o中的端点   ld:找不到符号   collect2:ld返回1退出状态

    我喜欢帮助:

    1. 如果有人对我做错了什么有任何想法,那就太棒了。

    2. 看起来让Xcode重新*生成你的类的唯一方法是File - >新建并再次替换它们,其中(除其他外)会导致对新类的重复引用,并且您的旧类文件无用地留在项目中的移动文件夹中。有谁知道如何正确保持这些同步?我还没有找到任何涵盖新内容的Apple文档。

2 个答案:

答案 0 :(得分:25)

您是否已将CoreData.framework添加到项目中(或意外删除它)?这可能是链接错误的来源。

另外,我建议您查看Wolf Rentsch的MOGenerator。这是一个很大的问题 更强大的代码生成器,用于使用代间隙模式的核心数据类。每次保存xcdatamodel时它都可以自动重新生成类,同时保留自定义代码。

答案 1 :(得分:9)

这种情况最简单(也是最常见,最容易被忽略)的方式是,如果您不小心生成一组新的MOC类而不删除对旧的MOC类的引用(可能在项目中的不同组或其他内容)。在我意识到这正是我所做的事情之前,我只是花了太长时间对抗XCode。