2014-02-13 4 views
0

iCloud로 처음으로 작업하고 있습니다. 데이터를 iCloud 데이터베이스에 성공적으로 업로드했습니다. 여기오류 : json 문자열이 icloud의 배열 또는 객체로 시작되지 않았습니다.

[[iCloud sharedCloud] retrieveCloudDocumentWithName: 
      @"SessionInfo.plist" completion: 
      ^(UIDocument *cloudDocument, NSData *documentData, NSError *error) { 

    NSError *error; 
    id dict = [NSJSONSerialization 
    JSONObjectWithData:documentData options:NSJSONReadingMutableLeaves error:&error]; 

딕셔너리는 무기 호입니다 :

나는 데이터를 검색하려면 다음 코드를 썼다. 오류 메시지는 ' json string did not start with array or object for iCloud'입니다.

+0

[이 질문] (http://stackoverflow.com/questions/21749751/download-and-save-icloud-data-in-plist-format-in-document-folder)은 매우 유사합니다. 게시하고 있습니까? 귀하와 귀하의 user3305252 님의 계정 모두에서? 이 경우 질문을 하나로 병합하고 다른 질문을 삭제하십시오. – phi

답변

0

오류 메시지가 아닙니다. 이는 NSJSONSerialization이 반환 할 수있는 오류가 아니기 때문입니다. 가장 일반적인 오류 메시지는 The data couldn’t be read because it isn’t in the correct format 또는 JSON text did not start with array or object and option to allow fragments not set.입니다. 정확한 오류 메시지가 포함 된 것이 중요합니다. 사용자가 자신이 말하는 것을 사람들이 알 수 있도록하려는 경우 질문 할 때 오류 메시지가 나타납니다. 오류가 난 그게 맞는 생각과 일치하는지 가정

, 대답은 간단하다 : 당신의 documentData 객체가 유효한 JSON 포함되어 있지 않습니다. 결과적으로 NSJSONSerialization은 사전으로 변환 할 수 없습니다. 해당 메서드의 첫 번째 인수는 NSData 개체에 인코딩 된 유효한 JSON 데이터를 포함해야합니다.

작업하는 데이터를 설명하지 않았으므로 이것이 이유가 무엇인지 확신 할 수 없습니다. 그러나 파일 이름이 SessionInfo.plist이므로 사용자는 아마도 속성 목록으로 작업하고있을 것입니다. 속성 목록이 JSON이 아닙니다. 유효한 속성 목록 파일 형식에는 XML, 이진 파일 (ASCII 형식) 및 ASCII (구식이지만 여전히 읽을 수있는 형식)가 있습니다. 이들 중 어느 것도 JSON이 아니며 NSJSONSerialization으로 작동하지 않는 사용자는 없습니다.