Cocoa-Touch, Core Data: ошибка компоновщика, символ NSManagedObject не найден - PullRequest
3 голосов
/ 11 октября 2009

У меня есть приложение с поддержкой Cocoa, использующее базовую структуру данных.

Я создал xcdatamodel с двумя сущностями: Program и ProgramReplay.
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

и

#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:<br> .objc_class_name_Program in Program.o<br> .objc_class_name_ProgramReplay in ProgramReplay.o<br> ld: symbol(s) not found<br> collect2: ld returned 1 exit status

Что я делаю не так?

1 Ответ

6 голосов
/ 11 октября 2009

Похоже, вы не связались в платформе CoreData. Убедитесь, что «CoreData.framework» является частью фазы «Связать двоичный файл с библиотеками» целевого объекта, который вы создаете. Также добавьте #import <CoreData/CoreData.h> в .h файл.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...