1

Google検索など、理解できない問題があります。プログラムで CAShapeLayer にアクセスしようとしていますが、このコード行を使用するたびに CASHapeLayer *layer = [CAShapeLayer layer] というエラー メッセージが表示されます


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

なぜ機能しないのか理解できないようです。1 つのコア グラフィックスは、デフォルトで作成するすべてのプロジェクトに常に追加されます。したがって、 #import を任意のファイルに追加すると、このクラスを使用できるようになります。CA と入力すると... インテリセンスで CAShapeLayer が表示されます。また、本当に奇妙なのは、古いプロジェクトの 1 つを開くことができ、それらのプロジェクトが CASHapeLayer を使用していることです。エラーはまったく発生しません。したがって、このプロジェクトに固有のものであり、新しいプロジェクトを作成しても同じエラーが発生します。ご協力ありがとうございました。

4

1 に答える 1

11

QuartzCore.framework に対してリンクしていますか? そのフレームワークを新しいプロジェクトに追加していないに違いありません。

于 2013-04-11T19:58:18.487 に答える