NSData无法识别的选择器发送到类

时间:2017-10-13 15:29:33

标签: ios objective-c unrecognized-selector

运行我的应用时出现以下错误:

  

+ [NSData dataFromBase64String:]:无法识别的选择器发送到类0x1aff66598   由于未捕获的异常而终止应用程序   ' NSInvalidArgumentException',原因:' + [NSData   dataFromBase64String:]:发送给类的无法识别的选择器   0x1aff66598'

来电者看起来像这样:

NSString* decodedData = [self base64Decode:encodedData];

方法定义如下:

- (NSString *)base64Decode:(NSString *)base64String {
    NSData *plainTextData = [NSData dataFromBase64String:base64String];
    NSString *plainText = [[NSString alloc] initWithData:plainTextData encoding:NSUTF8StringEncoding];
    return plainText;
}

// This is in another class
+ (NSData *)dataFromBase64String:(NSString *)aString {
    NSData *data = [aString dataUsingEncoding:NSASCIIStringEncoding];
    if( data == nil )
        return nil;
    size_t outputLength;
    void *outputBuffer = NewBase64Decode([data bytes], [data length], &outputLength);
    NSData *result = [NSData dataWithBytes:outputBuffer length:outputLength];
    free(outputBuffer);
    return result;
}

我不确定我做错了什么......

1 个答案:

答案 0 :(得分:0)

您是否实施了' dataFromBase64String:'在静态框架或库中的objective-C类别?

如果是这种情况,则类别中的方法不会包含在链接中,因此在运行时不会找到,除非您添加标记' -ObjC -all_load'在Xcode中的OTHER_LINKER_FLAGS上。

请参阅https://developer.apple.com/library/content/qa/qa1490/_index.html