为什么Xcode给我这些错误? [英] Why is Xcode Giving Me These Errors?

查看:276
本文介绍了为什么Xcode给我这些错误?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我得到的错误是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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆