运行我的应用时出现以下错误:
+ [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;
}
我不确定我做错了什么......
答案 0 :(得分:0)
您是否实施了' dataFromBase64String:'在静态框架或库中的objective-C类别?
如果是这种情况,则类别中的方法不会包含在链接中,因此在运行时不会找到,除非您添加标记' -ObjC -all_load'在Xcode中的OTHER_LINKER_FLAGS上。
请参阅https://developer.apple.com/library/content/qa/qa1490/_index.html