0
에서 추출있는 NSString :나는 다음과 같이 NSKeyedArchiver에서있는 NSString을 추출하기 위해 노력하고 NSKeyedArchiver
NSMutableData *data = [[NSMutableData alloc] init];
NSKeyedArchiver *coder = [[NSKeyedArchiver alloc] initForWritingWithMutableData:data];
[coder encodeInt:1 forKey:@"myField"];
[coder finishEncoding];
NSString *myString = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"%@", myString);
문제는 mystring에이 전무는 점이다 (NSLog 인쇄 '(널)'). 위의 코드에 어떤 문제가 있습니까?
다른 게시물 내가 읽은 것은 일반적으로 인코딩이 잘못되어 (NSMutableData가 UTF-8 이외의 다른 인코딩을 사용하고 있기 때문) 언급했기 때문입니다. 나는 인코딩의 모든 다른 유형을 시도했지만 여전히 운이 없다.
감사합니다. 링크를 살펴 보았고 NSKeyedArchiver archiveRootObject : toFile :을 사용하여 인코딩 된 데이터를 파일로 출력하는 방법을 설명했습니다. 그러나 대신 NSString 개체의 문자열 표현을 얻고 싶습니다. 설명서에 따르면 NSString initWithData : encoding : 메서드는 트릭을 수행해야합니다 (즉, NSData를 가져 와서 NSString을 만듭니다). – Kyllan
최종 목표는 무엇입니까? – FreeAsInBeer
정확하게 이해하고 있는지 확인하려면 NSKeyedArchiver를 사용하여 "myField"키에 대해 int를 인코딩합니다. NSKeyedArchiver는 인코딩 된 데이터를 NSMutableData 'data'로 출력합니다. 그런 다음 '데이터'변수를 사용하여 NSString을 초기화합니다. 런타임에서 데이터를 문자열로 변환하는 방법 (즉, UTF-8, ASCII 또는 무수한 다른 문자열 일 수있는 지정된 문자열 인코딩 사용)을 알 수 있도록 인코딩을 지정해야합니다. 이 말이 맞습니까? – Kyllan