Weird chyba sestavení, problém s názvem třídy?

hlasů
0

Dělám krátký projekt jen experimentovat psaní bez použití hrot souborů (pouze osobní zájem, neplánujete nikdy pomocí hrotů!).

Mám svůj regulátor app nastavit jako NSApp je delegáta. Pod - (void) applicationDidFinishLaunching: (*) NSNotification aNotification, pokusím inicializovat rozhraní.

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

Způsob 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];

}

Součástí zakomentovány je původ chyby 1, které se nezobrazí v textovém editoru, pouze v „sestavení“ panel:

<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

Zdá se, že problém s alloc / init'ing instanci zde. Mohu prohlásit nový pohodě, tj QTMovieView * Test; a nic si stěžuje. Také jsem zjistil, že to dělá to samé se všemi ostatními třídami QT, když se snažím alloc / init nimi. Nicméně, byl jsem schopen alloc / init NSWindow pohodě. Rámec je v mém projektu, a jak můžete vidět v mé h souboru, jsem součástí QTKit.

Každý, kdo ví, co se děje?

Položena 09/03/2009 v 02:57
zdroj uživatelem
V jiných jazycích...                            


1 odpovědí

hlasů
4

Chyba, že jste stále je chyba linker - spojka ( ld) nemůže najít objektový kód rámec pro QTMovieViewtřídu. Proto jste nezahrnuli rámec QTKit v projektu. Pokud si myslíte, že jste, pak se něco o tom není nastaven správně.

Odpovězeno 09/03/2009 v 03:23
zdroj uživatelem

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more