【发布时间】:2010-10-12 02:31:54
【问题描述】:
我正在做一个简短的项目,只是为了在不使用 nib 文件的情况下尝试写作(仅限个人兴趣,不要打算永远不使用 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个错误的来源,只出现在“构建”面板中:
<pre> ".objc_class_name_QTMovieView", referenced from:
literal-pointer@_OBJC@_cls_refs@QTMovieView in AppController.o
symbol(s) not found
collect2: Id returned 1 exit status
在这里分配/初始化一个实例似乎有问题。我可以声明一个新的就好了,即 QTMovieView *test;没有什么可抱怨的。我还发现,当我尝试分配/初始化它们时,它对所有其他 QT 类做同样的事情。但是,我能够很好地分配/初始化 NSWindow。该框架在我的项目中,正如您在我的 .h 文件中看到的那样,我包含了 QTKit。
有人知道发生了什么吗?
【问题讨论】:
标签: ios objective-c xcode macos cocoa