2009-10-11 26 views
3

我有一個使用核心數據框架的可可觸摸應用程序。Cocoa-Touch,核心數據:鏈接器錯誤,未找到NSManagedObject符號

我創建了兩個實體的xcdatamodel:ProgramProgramReplay
ProgramReplayProgram有關係,後面存在反向關係。

我保存了這個,並使用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

我在做什麼錯?

回答

6

它看起來像你沒有在CoreData框架中鏈接。確保「CoreData.framework」是您正在構建的目標的「鏈接二進制庫」階段的一部分。在.h文件中添加#import <CoreData/CoreData.h>

+0

另外...在你的「pch」文件中添加'#import ' – refaelos 2012-09-23 21:00:12