2009-03-09 10 views
0

私はちょうどnibファイルを使わずに実験をするだけの短いプロジェクトをしています(個人的な興味だけです。奇妙なビルドエラー、クラス名の問題?

自分のアプリケーションコントローラをNSAppの代理人として設定しました。 - (void)applicationDidFinishLaunching:(NSNotification *)aNotificationの下で、インタフェースを初期化しようとしています。

AppController.h:AppController.mで

#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 

方法

- (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つのエラーの起源であります"ビルド"パネル:

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

ここでインスタンスをalloc/init'ingすると問題があるようです。新しいもの、つまりQTMovieView *テストを宣言できます。何も文句を言わない。また、他のQTクラスと同じことをalloc/initしようとすると、同じことがわかりました。しかし、私は/ init NSWindowをうまく割り当てることができました。フレームワークは私のプロジェクトにあり、あなたが私の.hファイルで見ることができるように、私はQTKitを含んでいました。

誰でも何が起こっているか知っていますか?

答えて

4

エラーはリンカエラーです。リンカ(ld)は、QTMovieViewクラスのフレームワークオブジェクトコードを見つけることができません。したがって、プロジェクトにはQTKitフレームワークは含まれていません。あなたが持っていると思うなら、それについては何かが正しく設定されていません。

+0

ありがとうございました。「QTKit.framework」の代わりに「QuickTime.framework」を追加しました... bleh ... – cemulate