就目标C而言,我是一个完整的菜鸟(或者甚至是OOP)。这是我想要做的事情
@implementation AInterface
- (BOOL)getParam:(NSData **)a param1:(NSData**)param1 param2:(NSData**)param2
{
//Do a bunch of things
return bool;
}
@end
@interface AInterface : NSObject
- (BOOL)getParam:(NSData **)a param1:(NSData**)param1 param2:(NSData**)param2;
+ (instancetype) inst;
@end
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
答案 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。