LoginSignup
12
10

More than 5 years have passed since last update.

Xcode でビルドも実行もできるのにエラー表示が発生する場合の対処法

Last updated at Posted at 2016-04-06

Xcode で コーディング中に、エラー表示はされるが、ビルドするとエラーが消えて実行できるのに、またソースを修正するとエラー表示がされるという経験はないだろうか?エラーメッセージは以下のような感じだったりします。

Screen Shot 2016-04-06 at 3.01.39 PM.png

Use of unresolved identifier 'MyManager'.

ちゃんとコードがプロジェクトに含まれている事を確認して、テストの為実行させると、エラーが消えて実行できたりする。どうなってんだろうと色々調べてみました。

Use of undeclared type” in Swift, even though type is internal, and exists in same module
http://stackoverflow.com/questions/25437891/use-of-undeclared-type-in-swift-even-though-type-is-internal-and-exists-in-s

質問の切り口は異なるかもしれませんが、問題の解決方法は同じでした。答えは、Target に Tests や UITests などがあった場合に、あるターゲットから特定の class などにアクセスできない場合にエラーになります。

エラーが発生している部分はこんな感じです。

Screen Shot 2016-04-06 at 3.54.36 PM.png

MyManager のコードの部分はこんな感じです。

Screen Shot 2016-04-06 at 3.48.32 PM.png

つまり、エラーの出たコードの部分では、アプリ自体には MyManager は含まれるが、Tests や UITests には MyManager が含まれないので、「Use of unresolved identifier 'MyManager'」と言われるというわけでした。そこで、Project から MyManager のソースを選んで、Tests と UITests のターゲット含めてあげれば(下図)、エラー表示は消えてくれます。

Screen Shot 2016-04-06 at 3.19.57 PM.png

実は、この現象、過去にも時々発生して、その度毎にすったもんだしてこの答えにたどり着いて、わかっているつもりでしたが、今回もすっかり(しっかり)失念していましたので、備忘録として記録する事にします。

もっとも、今回のケースに該当しない要因も考えられますので、ご留意ください。

(注記)
エラーにならないケースもあるようなので、今後注意深く観察していきたいと思います。

(環境表記)

Xcode: Version 7.3 (7D175)
Apple Swift version 2.2 (swiftlang-703.0.18.1 clang-703.0.29)
12
10
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
12
10