为什么Xcode给我这些错误? [英] Why is Xcode Giving Me These Errors?
问题描述
我得到的错误是Xcode说3件事情是未声明的(见下图)
但是在头文件中我已经声明了它们(见下面的图片)。
为什么我在宣布这些错误时收到这些错误。
完整代码:
头文件。
code> #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
实施文件
#importHotKeyController.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
{
//注册热键
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
您必须显示更多的文件以确保。您是否正确导入头文件?您是否保存了头文件?
尝试插入显式自我参考,您可能会收到更多的错误信息。
另外,尝试预处理实现文件(在生成菜单中),这可能揭示为什么没有找到ivar。
The error I get is Xcode saying 3 things are un-declared (see below picture)
But in the Header File I have declared them (see below picture)
Why I am getting these errors when I have declared them.
The Full Code:
Header File.
#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
Implementation File
#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
You would have to show more of the file to be sure. Are you properly importing the header file? Have you saved the header file?
Try inserting the explicit self-> references and you might get a more revealing error message.
Also, try preprocessing the implementation file (in the Build menu) and that might reveal why the ivar isn't being found.
这篇关于为什么Xcode给我这些错误?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!