【发布时间】:2018-03-25 18:56:32
【问题描述】:
运行我的应用时出现以下错误:
+[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;
}
我不确定我做错了什么......
【问题讨论】:
-
添加
#import "NSData+Base64.h"? -
什么文件包含
dataFromBase64String的实现?它是否定义为NSData类别?该文件是否已链接到您的应用? -
你知道
NSData已经有base64相关的功能了吗?它是在 iOS 7 中重新添加的。 -
如果 这是在另一个类中,你必须调用它 [AnotherClass dataFromBase64String:base64String];
标签: ios objective-c unrecognized-selector