私はちょうど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を含んでいました。
誰でも何が起こっているか知っていますか?
ありがとうございました。「QTKit.framework」の代わりに「QuickTime.framework」を追加しました... bleh ... – cemulate