0

Tab Barコントローラーと2つのUIView(そのうちの1つはKalCalendarController)をすべてワークスペースに持つ、ストーリーボードでXCode4を使用するiPadアプリがあります。これに Kal を追加したので、ワークスペースに 2 つのプロジェクトができました。Kal doc から 2 行のサンプル コードを追加すると、次のエラーが発生します。

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

これは 2 行のコードです。

KalViewController *calendar = [[KalViewController alloc] init];
[self.navigationController pushViewController: calendar animated:YES];

「シンボルが見つかりません...」に関するSOの質問のほとんどすべてを見てきましたが、この特定の状況には当てはまりません。Kal の例を動作させることはできますが、ワークスペースでは動作しません。リンカーの設定を確認しましたが、正しいようです。これを解決するには、他にどこを確認すればよいですか?

4

1 に答える 1

1

フレームワーク/ライブラリを適切にリンクして含めたと仮定すると、1 つの問題は、Kal プロジェクトのターゲット設定に、[ビルド設定] タブの [アーキテクチャ] 設定に適切なプラットフォームが含まれていないことです。

上記の最初のコメントに基づいて、Kal をまったくリンク/含めていない可能性もあります。ワークスペースにドラッグするだけでは不十分です。メイン アプリケーションからリンクする必要があります (これは、アプリのターゲット設定の [概要] タブで行うことができます)。

これは、Xcode の依存関係の "自動" 検出に依存しており、常に宣伝どおりに機能するとは限りません。この場合、メイン アプリのスキームで自動依存関係をオフにし、スキームのビルド設定で依存関係を手動で設定して、Kal が最初にビルドされ、次にアプリがビルドされるようにする必要がある場合があります。

于 2012-06-08T15:09:26.707 に答える