0

初めてiCloudを使用しています。データを iCloud データベースに正常にアップロードしました。

データを取得するために次のコードを書きました。

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

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

ここで dict は nil です。エラー メッセージは「json string did not start with array or object for iCloud」です。

4

1 に答える 1

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 (廃止されていますが、まだ読み取り可能) があります。それらはいずれも JSON ではなく、NSJSONSerialization.

于 2014-02-13T17:37:49.760 に答える