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

Pro*_*ody 3 iphone cocoa-touch objective-c

我有一个使用核心数据框架的可可触摸应用程序.

我创建了一个带有两个实体的xcdatamodel:ProgramProgramReplay.
ProgramReplay有关系Program,后来存在反向关系.

我保存了这个,并使用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
Run Code Online (Sandbox Code Playgroud)

#import <CoreData/CoreData.h>
@class Program;
@interface ProgramReplay :  NSManagedObject  
{
}

@property (nonatomic, retain) NSDate * date;
@property (nonatomic, retain) Program * program;
@end
Run Code Online (Sandbox Code Playgroud)

我还没有开始在任何地方使用这两个类,但是当我尝试构建它们时,我得到以下奇怪的链接错误:
".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

我究竟做错了什么?

Dav*_*ong 6

看起来你没有在CoreData框架中链接.确保"CoreData.framework"是您正在构建的目标的"链接二进制文件库"阶段的一部分.还要<CoreData/CoreData.h>在.h文件中添加#import .