私は Objective C を初めて使用し、このエラーが発生する理由を理解するのに苦労しています。他の同様の質問を確認しましたが、問題を解決できませんでした。
エラーは「-[NSConcreteMutableData base64Decoded]: 認識されないセレクターがインスタンス 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 にステップオーバーすると、クラッシュします。