【问题标题】:Weird build error,issue with class name?奇怪的构建错误,类名问题?
【发布时间】: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


    【解决方案1】:

    您遇到的错误是链接器错误——链接器 (ld) 找不到 QTMovieView 类的框架对象代码。因此,您还没有在项目中包含 QTKit 框架。如果你认为你有,那么它的某些内容设置不正确。

    【讨论】:

    • 谢谢,原来我添加了“QuickTime.framework”而不是“QTKit.framework”...... bleh......
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-05
    • 1970-01-01
    • 2012-08-02
    • 2011-10-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多