2

JSONKitライブラリを使用しようとしていますが、プロジェクトにソースファイルを含めました。含まれているカテゴリがNSDictionaryオブジェクトにJSONDataおよびJSONStringセレクターを提供するように、JSONKit.hヘッダーを含めました。

  NSMutableDictionary* root = [NSMutableDictionary dictionary];
  [root setValue:@"CONNECT" forKey:@"command"];
  NSData* data = [root JSONData];

しかし、実行時に次のエラーが発生します。

 -[__NSCFDictionary JSONString]: unrecognized selector sent to instance 0x784b870

カテゴリがNSDictionaryオブジェクトに適切なメソッドを追加しないのはなぜですか?

4

3 に答える 3

3

ちょうどそれを理解したので、私は自分の質問に答えています。

私のコードは、別の iOS アプリケーションから参照されている静的ライブラリの一部です。カテゴリをエクスポートする静的ライブラリを含める場合、カテゴリを使用しているアプリケーションは、「-ObjC」リンカー フラグでリンクする必要があります。

于 2012-02-16T01:46:04.010 に答える
0

これは少し n00b エラーですが、JSONKit.h ファイルと JSONKit.m ファイルをプロジェクトにインポートしたときにまったく同じ例外に遭遇しましたが、Xcode のターゲットに追加するボックスにチェックを入れませんでした。

JSONKit.m を開き、[ユーティリティ] パネルの [ファイル インスペクター] セクションを表示します。[ターゲット メンバーシップ] で、アプリの横にチェック ボックスがオンになっていることを確認します。

于 2013-04-11T10:12:48.863 に答える
0

受け入れられた回答で問題は解決しましたが、なぜ解決したのか (なぜ解決しなかったのか) を理解することは間違いなく役に立ちます。この問題と考えられる解決策の詳細については、この投稿を参照してください

于 2012-12-27T19:51:29.690 に答える