나는 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 : 프로젝트는 ARC를 사용할 것을
가@implementation NSData (DDData)
- (NSData *)base64Decoded
{
// Excluding function code, as it never gets to here
}
@end
그냥 참고. 여기에 어떤 문제가 있을지에 대한 아이디어가 있습니까? 감사.
편집 : 오류를 디버깅하는 데 도움이 위의 코드를 조정 한 :
NSData* dataDecoded = [input dataUsingEncoding:NSUTF8StringEncoding];
[dataDecoded base64Decoded];
dataDecoded는 dataUsingEncoding에서 값을 가져옵니다 base64Decoded에 대한 호출이 이루어질 때이 전무 없습니다. base64Decoded 호출로 넘어 가면 충돌이 발생합니다.
[input dataUsingEncoding : NSUTF8StringEncoding]도 입력 할 수 없으므로 nil이됩니다. 그래서 nil logs error에서 수행 된 함수 –
'NSConcreteMutableData' 클래스의 헤더 파일'.h'은 무엇을 말합니까? '-base64Decoded'와 같은 선택자가 있습니까? 그것은 당신에게 예외를 던진 것 같기 때문입니다. – holex
@Prince 내가 분명히하기 위해 내 게시물을 편집했습니다. base64Decoded로 전송 된 데이터가 nil이 아닙니다. – Benzino