2009-03-09 2 views
0

Я делаю короткий проект, просто чтобы поэкспериментировать без использования файлов nib (только для личного интереса, не планируйте никогда не использовать наконечники!).Ошибка при построении ошибки, проблема с именем класса?

У меня есть контроллер приложений, настроенный как делегат NSApp. Под - (void) applicationDidFinishLaunching: (NSNotification *) aNotification, я пытаюсь инициализировать интерфейс.

AppController.h:

#import <Cocoa/Cocoa.h> 
#import <QTKit/QTKit.h> 

@interface AppController : NSObject { 

NSWindow* mainWindow; 
QTMovieView* movieView; 
QTCaptureSession* mainSession; 
QTCaptureMovieFileOutput* output; 
QTCaptureDeviceInput* video; 
QTCaptureDeviceInput* audio; 

} 

+ (void)initialize; 
- (id)init; 

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification; 

@end 

Метод в AppController.m

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification { 


//Proceed to initialize the entire interface: 

mainWindow = [[NSWindow alloc] initWithContentRect:NSMakeRect(500, 300, 700, 500) 
styleMask:(NSTitledWindowMask|NSClosableWindowMask| 
    NSMiniaturizableWindowMask|NSResizableWindowMask) 
backing:NSBackingStoreBuffered 
defer:NO]; 

[mainWindow setTitle:@"Record a movie!"]; 

/*movieView = [[QTMovieView alloc] initWithFrame:NSMakeRect([[mainWindow contentView] bounds].origin.x + 5, 
               [[mainWindow contentView] bounds].origin.y + 30, 
                [[mainWindow contentView] bounds].size.width - 10, 
                [[mainWindow contentView] bounds].size.height - 35)];*/ 

[[mainWindow contentView] addSubview:movieView]; 

[mainWindow makeKeyAndOrderFront:NSApp]; 

} 

Часть закомментирована происхождение 1 ошибка, которая не отображается в текстовом редакторе, только в панель «build»:

<pre> ".objc_class_name_QTMovieView", referenced from: 
li[email protected][email protected][email protected] in AppController.o 
symbol(s) not found 
collect2: Id returned 1 exit status 

Существует, кажется, проблема с alloc/init'ing экземпляра здесь. Я могу объявить новый, просто отлично, т. Е. Тест QTMovieView *; и ничего не жалуется. Я также обнаружил, что он делает то же самое со всеми другими классами QT, когда я пытаюсь выделить/инициализировать их. Тем не менее, я смог выделить/init NSWindow просто отлично. Структура в моем проекте и, как вы можете видеть в моем .h файле, я включил QTKit.

Кто-нибудь знает, что происходит?

ответ

4

Ошибка, которую вы получаете, является ошибкой компоновщика - компоновщик (ld) не может найти код объектного кода для класса QTMovieView. Таким образом, вы не включили рамки QTKit в свой проект. Если вы думаете, что имеете, то что-то об этом не настроено должным образом.

+0

Спасибо, получилось, что я добавил «QuickTime.framework» вместо «QTKit.framework» ... bleh ... – cemulate