2017-05-22 2 views
0

웹 서비스에서 사전을 가져오고이 사전에 인코딩 된 키 - 값 쌍이 들어 있습니다. 이 키 - 값을 디코딩하기 위해 일부 코드를 사용했습니다.문자열을 올바르게 인코딩하고 디코딩하는 방법은 무엇입니까?

코드 번호. 1 :

[NSString stringWithUTF8String:[[dict valueForKey:@"desc"] cStringUsingEncoding:[NSString defaultCStringEncoding]]]; 

그러나 사전은 또한 "내림차순"키 값을 갖는 키를 & 값을 포함, 나는 다음이 코드를 실행하면 그것은 추락 얻을하고 디버깅 할 때 오류 [NSString stringWithUTF8String:]: NULL cString'

을 얻었다.

다른면에는 잘 작동하는 코드가 하나 있습니다.

코드 번호. 2 :

[NSString stringWithFormat:@"%@",[dict valueForKey:@"desc"]]; 

그러나 내 앱의 거의 모든 곳에서 코드 1과 그 코드가 잘 작동했습니다.

그리고 지금 나는이 오류를 완전히 혼동했다. [NSString stringWithUTF8String:]: NULL cString' 나는 사전에 키가 포함되어 있는지 검사했다. & 값.

+2

stringWithFormat은 TypeCasting에 사용되고 디코드 및 인코딩을 위해 문자열을 포맷하지 않습니다. – KKRocks

+0

문자열/dict의 정의를 표시하고 디코딩/인코딩하려는 내용부터/알려주십시오. – shallowThought

답변

0

NSString에서 C 문자열을 만든 다음 C 문자열에서 NSString을 (왜) 만들었습니까?

이유는 단순히

NSString *desc = dict[@"desc"]; 

그리고 - 항상 - 당신이 명시 적으로 KVC 필요한 이유는 설명 할 수없는 한 사용 valueForKey을하지 않습니다.

관련 문제