错误:无法识别的选择器发送到类

时间:2016-02-08 20:34:32

标签: objective-c class interface

就目标C而言,我是一个完整的菜鸟(或者甚至是OOP)。这是我想要做的事情

AInterface.m

@implementation AInterface

 - (BOOL)getParam:(NSData **)a param1:(NSData**)param1 param2:(NSData**)param2
{

       //Do a bunch of things
       return bool;
} 

@end

AInterface.h

@interface AInterface : NSObject

- (BOOL)getParam:(NSData **)a param1:(NSData**)param1 param2:(NSData**)param2;

+ (instancetype) inst;
@end

testMain.m()

int main()
{
    Bool result = NO;
    NSData *a = Nil;
    NSData *b = Nil;
    NSData *c = Nil;

    result = [[AInterface inst] getParam:(NSData **)&a param1:(NSData**)&a param2:(NSData**)&b];

    return result 
}

当我运行这个时,我收到错误说失败:

 caught "NSInvalidArgumentException", "+[AInterface inst]: unrecognized selector sent to class 

2 个答案:

答案 0 :(得分:3)

虽然你在@interface部分声明了+ inst方法,但是你的类没有实现它,这会导致运行时错误。您需要添加实现以使其工作,例如。

@implementation AInterface
...
+ (instancetype)inst {
   return [self new];
}

答案 1 :(得分:0)

您的问题是您在+inst中没有AInterface.m的实施。 在你的情况下,inst将是这样的: [[AInterface alloc] init]但我只是使用[[AInterface alloc] init]而不是首先调用inst。或[AInterface new],代表相同。

通常,您的其余代码不是惯用的Objective-C。