1

iOS5をサポートするプロジェクトをiOS4に変換していますが、いくつか問題があります。それはクラスAFNetworkingを使用し、私の問題は次の行にあります:

iOS 5 :(うまく機能します)

self.responseJSON =[NSJSONSerialization JSONObjectWithData:self.responseData options:0 error:&error];

iOS 4ではサポートされていないためNSJSONSerialization、私はこれを使用しています。

self.responseJSON = AFJSONDecode(self.responseData, &error);

エラーの原因:

Undefined symbols for architecture i386:
  "_AFJSONDecode", referenced from:
      -[AFJSONRequestOperation responseJSON] in AFJSONRequestOperation.o
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)
4

2 に答える 2

1

AFNetworking ページの要件セクションには、次のように記載されています。

iOS 4.3 との互換性のために、最新の 0.10.x リリースを使用してください。

バージョン 0.10.1のコードに目を通すと、ファイルAFJSONUtilities.mがあり、JSON デコードを処理しているように見えます。これは、NSJSONSerialization を備えた iOS 5 以降が必要なため、AFNetowrking の最新バージョンには存在しません。

JSON の問題に対処した後に追加の障害に遭遇する可能性があるため、現在のバージョンを iOS 4 で動作するように変更するのではなく、バージョン 0.10.1 をまだ試していない場合は試してみることをお勧めします。

于 2013-01-01T15:20:21.783 に答える
0

最善の策は、iOS 4 以前での JSON 処理にサードパーティ ライブラリを使用することです。JSONKit をお勧めします。https://github.com/johnezang/JSONKit

于 2013-01-01T15:11:15.020 に答える