6

私はこのエラーが発生しています:

Undefined symbols for architecture i386:
  "_OBJC_CLASS_$_ASIHTTPRequest", referenced from:
      objc-class-ref in FirstViewController.o
  "_OBJC_CLASS_$_SBJsonParser", referenced from:
      objc-class-ref in FirstViewController.o
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)

フレームワークのコア グラフィックス、システム構成、モバイル コア サービス、libz.dylib、libz.1.2.5.dylib、CF ネットワーク、UI キット、および Foundation を追加したことに注意してください。私はすべてのフォーラムを検索し、ほぼ 4 日間を費やしましたが、原因が見つかりません。

ASIHTTPRequest と SBJSON のコード行にコメントを付けると、問題なく動作します。ASIHTTPRequest と SBJSON のすべてのクラスを追加し、3 回チェックしました。誰かが私が間違っていることを提案できますか?

4

4 に答える 4

10

ターゲットの Build Phases セクションを見てみましょう。[ソースのコンパイル] の下に、ASIHTTPRequest と SBJson の .m ファイルがあることを確認します。外部クラスをプロジェクトにドラッグすると、チェックボックスをオンにしてファイルをプロジェクトにコピーしても、これらのコンパイル ソースに作成されないことがあります。ファイルを Xcode にドラッグすると、ファイルをターゲットに追加するためのチェック ボックスが表示されます。これがチェックされていない場合、ファイルはコンパイル ソースに含まれません。ファイルを削除して再度追加し、このファイルがチェックされていることを確認します (または、必要に応じて .m ファイルを手動で追加できます)。

于 2012-04-09T16:10:26.360 に答える
4

ASIHTTPリクエストの場合、次のフレームワークを追加します。

  • libz.1.2.5.dylib
  • システム構成
  • UIKit
  • 財団
  • CoreGraphics
  • MobileCoreServices
  • CFNetworks

iOS 5以降でASIHttpクラスを使用している場合は、ASI APIクラスにASIHttpRequest使用して、[プロジェクト]->[ビルドフェーズ]->[ソースのコンパイル]のクラスのARCをオフにする必要があります。-fno-objc-arc

それが問題を解決することを願っています。

于 2012-09-24T08:54:51.887 に答える
3

私はこれと同じ問題を抱えていましたが、次のフレームワークを含めたときここに画像の説明を入力

現在は問題なく動作しています。コンパイル ソースに -fno-objc-arc を含めることを忘れないでください。ここに画像の説明を入力

幸運をお祈りしています.......

于 2012-07-27T04:36:33.193 に答える
0

ASIHTTPRequest エラーについては、プロジェクトに ASIHTTPRequest.m を追加していないようです。

(または、ASIHTTPRequest.m を追加しましたが、xcode が ARC に関して発行している 40 億のエラーについて言及するのを忘れていました -なぜ ASIHTTPRequest ファイルに ARC エラーが表示されるのですか? を参照してください) 。

于 2012-04-09T15:57:12.327 に答える