質問

私はJsonkitライブラリを使用しようとしており、プロジェクトにソースファイルを含めています。 jsonkit.hヘッダーを含めて、含まれているカテゴリがnsdictionaryオブジェクトにJsondataとJsonstringセレクターを提供するようにしました。

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

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

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

カテゴリが適切な方法をnsdictionaryオブジェクトに追加しないのはなぜですか?

役に立ちましたか?

解決

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

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

他のヒント

受け入れられた答えは私のために問題を解決しましたが、なぜそれがやったのか(そしてなぜそうでないのか)を理解することは間違いなく役立ちます。この問題と可能な解決策をより詳細に見るために、 この投稿を参照してください.

N00Bエラーは少しですが、jsonkit.hとjsonkit.mファイルをプロジェクトにインポートしたときにまったく同じ例外にぶつかりましたが、Xcodeのターゲットに追加するためにボックスにチェックマークを付けませんでした。

jsonkit.mを開いて、ユーティリティパネルのファイルインスペクターセクションを表示し、ターゲットメンバーシップでは、アプリの横にチェックされているボックスがあることを確認してください。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top