我是 Objective C 的新手,无法理解为什么会出现此错误。我检查了其他类似的问题,但无法解决问题。
错误是“-[NSConcreteMutableData base64Decoded]: unrecognized selector sent to instance 0x6e15610”
这是问题代码的片段,其中对 base64Decoded 的调用导致了崩溃。
#import "DDData.h"
- (NSString *)decodeBase64:(NSString *)input
{
NSData* dataDecoded = [[input dataUsingEncoding:NSUTF8StringEncoding] base64Decoded];
return [NSString stringWithUTF8String:[dataDecoded bytes]];
}
在 DDData.h 中:
#import <Foundation/Foundation.h>
@interface NSData (DDData)
- (NSData *)base64Decoded;
@end
和 DDData.m:
@implementation NSData (DDData)
- (NSData *)base64Decoded
{
// Excluding function code, as it never gets to here
}
@end
请注意,该项目已启用 ARC。关于这里可能出现什么问题的任何想法?谢谢。
编辑:我已经调整了上面的代码来帮助调试错误:
NSData* dataDecoded = [input dataUsingEncoding:NSUTF8StringEncoding];
[dataDecoded base64Decoded];
dataDecoded 从 dataUsingEncoding 中获取一个值,当调用 base64Decoded 时它不为 nil。当我跨步到调用 base64Decoded 时,它崩溃了。