Warum erhalte Xcode Me diese Fehler?
-
21-08-2019 - |
Frage
Der Fehler ich Xcode bekommen, ist zu sagen 3 Dinge sind un-erklärt (siehe Bild unten) alt text http://snapplr.com/snap/ks4h
Aber in der Header-Datei ich sie erklärt habe (siehe Bild unten)
alt text http://snapplr.com/snap/htmb
Warum ich diese Fehler immer bin, wenn ich ihnen erklärt haben.
Der vollständige Code:
Header-Datei.
#import <Foundation/Foundation.h>
@interface HotKeyController : NSObject {
IBOutlet NSButton *cmdHK;
IBOutlet NSButton *ctrHK;
IBOutlet NSButton *optHK;
IBOutlet NSPopUpButton *keyHK;
IBOutlet NSWindow *window;
IBOutlet NSWindow *searchWindow;
IBOutlet NSWindow *entryWindow;
}
@end
Die Umsetzung Datei
#import "HotKeyController.h"
#include <Carbon/Carbon.h>
@implementation HotKeyController
OSStatus MyHotKeyHandler(EventHandlerCallRef nextHandler,EventRef theEvent,void *userData)
{
EventHotKeyID hkCom;
GetEventParameter(theEvent,kEventParamDirectObject,typeEventHotKeyID,NULL,sizeof(hkCom),NULL,&hkCom);
int l = hkCom.id;
switch (l) {
case 1: [window makeKeyAndOrderFront:NSApp];
break;
case 2: [searchWindow makeKeyAndOrderFront:nil];
break;
case 3: [entryWindow makeKeyAndOrderFront:nil];
break;
}
return noErr;
}
- (void)awakeFromNib
{
//Register the Hotkeys
EventHotKeyRef gMyHotKeyRef;
EventHotKeyID gMyHotKeyID;
EventTypeSpec eventType;
eventType.eventClass=kEventClassKeyboard;
eventType.eventKind=kEventHotKeyPressed;
InstallApplicationEventHandler(&MyHotKeyHandler,1,&eventType,pl,NULL);
gMyHotKeyID.signature='htk1';
gMyHotKeyID.id=1;
if([[NSUserDefaults standardUserDefaults] integerForKey:@"hotkeyShowMain"]!=-999) {
RegisterEventHotKey([[NSUserDefaults standardUserDefaults] integerForKey:@"hotkeyShowMain"], [[NSUserDefaults standardUserDefaults] integerForKey:@"hotkeyShowMainModifier"], gMyHotKeyID, GetApplicationEventTarget(), 0, &gMyHotKeyRef);
}
gMyHotKeyID.signature='htk2';
gMyHotKeyID.id=2;
if([[NSUserDefaults standardUserDefaults] integerForKey:@"hotkeyShowSearch"]!=-999) {
RegisterEventHotKey([[NSUserDefaults standardUserDefaults] integerForKey:@"hotkeyShowSearch"], [[NSUserDefaults standardUserDefaults] integerForKey:@"hotkeyShowSearchModifier"], gMyHotKeyID, GetApplicationEventTarget(), 0, &gMyHotKeyRef);
}
gMyHotKeyID.signature='htk3';
gMyHotKeyID.id=3;
if([[NSUserDefaults standardUserDefaults] integerForKey:@"hotkeyShowEntry"]!=-999) {
RegisterEventHotKey([[NSUserDefaults standardUserDefaults] integerForKey:@"hotkeyShowEntry"], [[NSUserDefaults standardUserDefaults] integerForKey:@"hotkeyShowEntryModifiers"], gMyHotKeyID, GetApplicationEventTarget(), 0, &gMyHotKeyRef);
}
}
@end
Lösung
würden Sie müssen mehr der Datei zeigen, um sicher zu sein. Importieren Sie richtig die Header-Datei? Haben Sie die Header-Datei gespeichert?
Versuchen Sie, die explizite Selbst> Referenzen eingefügt und Sie könnten eine aufschlußreicher Fehlermeldung.
Versuchen Sie auch, eine Vorverarbeitung der Implementierungsdatei (im Build-Menü) und das könnte verraten, warum die Ivar nicht gefunden werden.
Andere Tipps
Der Fehler, den ich bekommen ist Xcode sagt 3 Dinge sind un-deklariert ...
Aber in der Header-Datei Ich habe sie erklärt ...
Warum ich diese Fehler immer bin, wenn ich ihnen erklärt haben [in der HotKeyController Klasse].
Da diese Zeilen in einer Funktion sind, nicht in einem Verfahren der HotKeyController Klasse. Es spielt keine Rolle, wo Sie die Funktion setzen (innen @implementation
oder nicht); es ist immer noch eine Funktion, keine Methode.
Wie würde ich machen den
userData
Parameter Punkt meiner HotKeyController?
Sie eingestellt, dass, wenn Sie die Ereignishandler erstellen. In der Tat sind Setzen Sie es bereits auf „pl
“, was immer das ist.
NSWindow ist nicht in der Stiftung Rahmen definiert, Sie müssen die richtigen Header, ApplicationKit oder Cocoa importieren.