代码之家  ›  专栏  ›  技术社区  ›  Prody

Cocoa Touch,核心数据:链接器错误,未找到NSManagedObject符号

  •  3
  • Prody  · 技术社区  · 16 年前

    我有一个cocoa touch应用程序,使用核心数据框架。

    我创建了一个包含两个实体的xcdatamodel: Program ProgramReplay .
    节目回放 与…有关系 程序 ,后者中存在反向关系。

    我保存了这个,并使用XCode的特性为这两个实体生成了类。生成的标题如下所示:

    #import <CoreData/CoreData.h>
    @class ProgramReplay;
    @interface Program :  NSManagedObject  
    {
    }
    
    // other properties here, removed them to keep it short
    @property (nonatomic, retain) NSSet* replays;
    @end
    
    @interface Program (CoreDataGeneratedAccessors)
    - (void)addReplaysObject:(ProgramReplay *)value;
    - (void)removeReplaysObject:(ProgramReplay *)value;
    - (void)addReplays:(NSSet *)value;
    - (void)removeReplays:(NSSet *)value;
    @end
    

    #import <CoreData/CoreData.h>
    @class Program;
    @interface ProgramReplay :  NSManagedObject  
    {
    }
    
    @property (nonatomic, retain) NSDate * date;
    @property (nonatomic, retain) Program * program;
    @end
    


    ".objc_class_name_NSManagedObject", referenced from:
    .objc_class_name_Program in Program.o
    .objc_class_name_ProgramReplay in ProgramReplay.o
    ld: symbol(s) not found
    collect2: ld returned 1 exit status

    我做错了什么?

    1 回复  |  直到 16 年前
        1
  •  6
  •   Adnan    12 年前

    看起来您还没有在CoreData框架中链接。确保“CoreData.framework”是您正在构建的目标的“链接二进制与库”阶段的一部分。同时添加#导入 <CoreData/CoreData.h> 在.h文件中。