objective-c - 选择器 OpenDevice 的未知类方法

标签 objective-c macos exception crash

我正在为 OSX 开发 Objective-c 中的应用程序。

我写了第一个类,并尝试在我的 MainThread 中调用这个类。

构建成功但应用程序崩溃

设备管理器.h

#import <Foundation/Foundation.h>

@interface DeviceManager : NSObject

+(void)DeviceManager:OpenDevice;

@end

设备管理器.m
#import "DeviceManager.h"

@implementation DeviceManager

- (id)init{
    self = [super init];
    if(self){
        NSLog(@"Init");
    }
    return self;
}

+ (void)DeviceManager:OpenDevice {
    NSLog(@"Opening Device");
}

@end

main.m 正在调用它:
#import "DeviceManager.h"


int main(int argc, const char * argv[]) {
    [DeviceManager OpenDevice];
    return NSApplicationMain(argc, argv);
}

在构建时,我不知道选择器 OpenDevice 的类方法

谢谢
塞布

最佳答案

#import <Foundation/Foundation.h>

@interface DeviceManager : NSObject

+ (void) openDevice;

@end

设备管理器.m
#import "DeviceManager.h"

@implementation DeviceManager

+ (void) openDevice {
    NSLog(@"Opening Device");
}

@end

主文件
#import "DeviceManager.h"

int main(int argc, const char * argv[]) {
    [DeviceManager openDevice];
    return NSApplicationMain(argc, argv);
}

以上对我有用。 DeviceManager:OpenDevice 是什么意思意思是?因为除非它是一种定义方法的新方法,否则它就是胡言乱语。看起来你想要一个名为 openDevice 的设备管理器类方法...所以使用 + (void) openDevice {...} .

关于objective-c - 选择器 OpenDevice 的未知类方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31600126/

相关文章:

iphone - iOS 中基于 URL 的导航,例如 three20 的 TTNavigator

c - Arduino 无线选项

macos - (macos 终端)将正则表达式匹配的首字母更改为大写

java - 如何在 Java 中设置异常消息?

exception - 何时使用自定义异常与现有异常与通用异常

python - 在 Python 中手动引发(抛出)异常

iOS:如何在自定义单元格上正确使用 prepareForReuse?将编辑切换到非编辑模式时,我的单元格被错误地重复使用

objective-c - iOS/Objective-C : library to connect to POP3

objective-c 除法总是返回 0

objective-c - 在 Xcode Swift 项目中使用 Objective C 框架