문제

이전에 InitwithContentsofUrl을 사용하여 plist를 nsdictionary로 다운로드했지만 동일한 스레드에서 실행될 때 UI가 걸려 있으므로 이제 NSURLConnection으로 이동했습니다. 문제는 더 이상 nsMutabledata를 사용하여 nsDictionary를 시작하는 메소드를 호출 할 수 없다는 것입니다. nsmutabledata를 가져 와서 nsdictionary로 배치하는 가장 좋은 방법은 무엇입니까?

도움이 되었습니까?

해결책

필요한 것은 nspropertylistserialization입니다.

NSDictionary *myDict = [NSPropertyListSerialization propertyListFromData:myData mutabilityOption:NSPropertyListImmutable format:nil errorDescription:nil];

가장 단순한 옵션입니다.

다른 팁

당신이 무엇을하려고하는지 정확히 알지 못하고, 나는 이것에 찌를 것입니다. 작동하지 않더라도 목적을 위해 적응할 수 있다고 확신합니다.

NSString *s = [[NSString alloc] initWithBytes:[mutableData bytes] length:[mutableData length] encoding:NSUTF8StringEncoding];
NSString *path = NSTemporaryDirectory();
path = [path stringByAppendingPathComponent:@"tmpfile.txt"];
if ([s writeToFile:path atomically:NO encoding:NSUTF8StringEncoding error:nil]) {
    NSDictionary *d = [[NSDictionary alloc] initWithContentsOfFile:path];
}

일반 영어로 주어진 데이터에서 문자열을 만들고 임시 파일에 기록한 다음 온도 파일을 NSDictionary 물체.

이 코드는 완벽하지 않지만 (오류 확인 등과 같은 것들이 필요합니다) 시작할 수 있습니다.

경고 : 몇 년 동안 코코아 소프트웨어를 작성해 왔지만 아이폰을 만지지 않았으므로 추측입니다.

NSDictionary에는 보존 해야하는 다른 데이터가 있습니까?

연결 : didreceiversonse : method (nsurlconnection의 위임)에서 이전 nsDictionary를 nsmutabledictionary에 복사 한 다음 URL 응답 데이터를 삽입 할 수 있습니다. 그런 다음 nsmutabledictionary를 새로운 nsdictionary로 변환하십시오.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top