LoginSignup
3
3

More than 5 years have passed since last update.

自作したframeworkをimportできるのにクラスを呼び出そうとするとModule has no member

Last updated at Posted at 2017-01-06

importはできるのに関数を呼び出そうとするとModule has no member

importは成功するのに、フレームワーク内に定義したクラスを呼び出せないという自分にとっては訳の分からぬ謎の事態になりました。

あれこれ模索してるうちに、解決策が見えてきましたので備忘録がてら書き残しておきます。雑に書いてますが、最新の状況があまり無いですし

自分みたいにXcodeに関して一知半解のまま開発を進めていると、壮大にハマります。

この機会にXcodeの「設定周辺」の知識も深めようと思いました

時系列

1, cocoa touch frameworkでフレームワークを自作

                               ↓

2, single view applicationでプロジェクトを立ち上げる

                               ↓

3,フレームワークをプロジェクトにドロップアンドドラッグ

               ↓

4,ドロップアンドドラッグframework名をimport

               ↓

5,読み込まれる(成功)

               ↓

6,framework内で自作したクラスを呼び出す

               ↓

7,失敗.... orz

原因

私の場合の原因は、Xcodeの設定にありました。私自身、これを書きながら学んでいますので手探りですし分かりやすく説明できず、すみません

下記の画像はcocoa touch frameworkで作成した自作frameworkのプロジェクトですがbuild phaseの設定で、しっかりソースを追加しないと、frameworkを呼び出す側のプロジェクトがソースを見れません。

compile sources や link binary with libraries や copy bundle resources 、自分もまだよくわかってませんが、ここら辺をちゃんとやるべきです

スクリーンショット 2017-01-06 15.56.18.png

成功するとframeworkに定義したクラスを呼び出せる

成功すると、下記画像のようにimportでlampfremeを読み込み、自作したlampfreme内にはクラスが定義されていて、しっかり読み込めます

スクリーンショット 2017-01-06 16.20.10.png

3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3