Xcode でコード補完ができなくなった場合の対処方法 : Objective-C プログラミング

PROGRAM


Xcode でコード補完ができなくなった場合の対処方法

Xcode 4.3 を使っていると時々、コード入力補完(インテリセンス)やコードの色づけ(シンタックスハイライト)が無効になることがあります。

色が付かないとコードも見にくなりますし、補完コードが出てきてくれないと不便どころかもはや困って仕方なかったので、インターネットで調べてみたのですけど、各所で言われる Derived Data の削除では復旧できないことがほとんどでした。

 

それでも仕方ないと我慢するにはあまりに不便だったので、なんとかこれらの機能を復帰させる方法がないかと試行錯誤していたところ、おそらくほとんどのケースで復旧できる方法が見つかりました。

少なくとも Xcode 4.3.2 で試す限りでは次の方法で、ほとんどの場面で即座に、場合によっても数分のうちに、コード補完と色付けが復旧してくれています。

方法 1 : Other C フラグを編集する

何故か突然コードの着色がほとんどなくなったり、コード補完候補がまともに出てこなくなった時には次の直し方が効果的な様子です。

コード補完や色付けがおかしくなったプロジェクトの "Build settings" を開いて "Other C Flags" の内容を編集します。

編集するといっても、普通はなかなか編集しないフラグですから、ここはとりあえずプロジェクトに何も影響しないフラグを追加してあげる感じが良さそうです。今回の例では "-DEZDUMMY12" というフラグを定義しています。

編集する箇所はいくつかありますけど、コード補完や色付けを直したいのであれば、"Debug" に対するフラグ設定を編集すれば良いようでした。

 

このようにすることで、上手くいけばコード編集画面に戻ったときには既に色付けやコード補完が元通りに正しく動作するようになっています。

もし戻っていないように見えても、表示されている部分だけの色付けが白いままでスクロールするとちゃんと色が付いていたり、コード補完は正しく動作するようになってくれたりしていることが多いです。

色づけされていない部分が残っていても、コード補完機能が復帰しているなら、色の方も数分のうちに元通りに戻ることが多い感じでした。

 

上手く直ってくれない場合は、TARGETS の方の "Other C Flags" にダミーのフラグを設定してみたり、"Debug" だけでなく "Release" などに設定して試してみてもいいかもしれません。

方法 2 : ターゲットメンバーシップを設定し直す

それでも色付けやコード補完が復帰しない場合には、"File Inspector" の "Target Membership" を設定しなおすと直ってくれる場合があります。

このとき、補完や色付けができなくなっているファイルの "Target Membership" を設定し直します。

目的のファイルを、Xcode 左側の "Project Navigator" などから開いたら、右側の "File Inspector" にある "Target Membership" のところから、現在のビルド対象になっているターゲットのチェックをいったん外して、再びチェックを入れます。

 

こうすることで、数分程度のうちにコードの色づけと補完が復帰してくれる場合があります。

この方法は、例えばソースコードを Objective-C から Objective-C++ に変更するために、拡張子を ".m" から ".mm" に変更したりして補完や色付けができなくなったようなときに、特に効果があるようでした。

その他の方法として

上記 2 つの方法で、今のところはいい具合に復旧できている感じです。

他にも Xcode の Derived Data を削除するという方法もあるようですが、この方法では補完データが壊れてしまったような特殊な場合にだけ効果があるような感じです。

このやり方は Xcode をアップデートしてコード補完ができなくなった場合 に記してあるので、どうしても直ってくれないような場合に試してみるといいかもしれないです。

[ もどる ]