web-dev-qa-db-ja.com

Xcode 8.2コード補完が機能しない

何らかの理由で、Xcode 8.2ではコード補完が機能しなくなりました。製品をクリーニングし、Xcodeを再起動し、コンピューターを再起動し、派生データを削除しましたが、まだ運がありません。これをAppleサポートに送信しました。誰もこれに遭遇し、それを修正できましたか?

56
ethanfox27

Xcode 8.2.1でコード補完も機能しなくなり、クリーンアップ、派生データの破棄、または再起動は修正されませんでした。しばらくして、作業中の拡張スコープ内でのみコード補完が壊れていることに気付きました。手動で入力すると、コードが正しく強調表示され、正常にコンパイルされるため、ソースがコード完了を担当するパーサーをスローする問題ではありませんでした。

この非常に単純な例で、それが発生する特定のコンテキストを次に示します。

struct SomeStruct {

    static let foobar1 = {
        return NSBezierPath()
    }()

}

extension SomeStruct {

    static let foobar2 = {
        return NSBezierPath()
    }()

}

コード補完は、foobar1の実装ブロック内で正常に機能しますが、foobar2に対しては機能しません。拡張機能内にstatic letが存在することで、それがトリガーされるようです。この問題は、構造体とクラスの両方で発生します。

Xcodeのバグのように見えるので、私の唯一の回避策はfoobar2SomeStructのメイン定義に移動することでした。

15
charles

更新:以下の@Dareonソリューションによると、Xcodeバージョン8.3(8E162)および8.3.2(8E2002)でも動作します。確認してくれてありがとう、@ Dareon。 :)

私は同じ問題に直面していましたが、次のことがうまくいきました。

Xcodeバージョン8.2.1(8C1002)を使用しています。

  1. Xcode> Preferences> Text Editingに移動します
  2. [コード補完]-[入力中に補完候補を表示]のチェックを外します
  3. Xcodeを終了し、Xcodeを再起動します。
  4. Xcode> Preferences> Text Editingに再度移動します
  5. Xcodeを終了し、Xcodeを再起動します。
  6. ここで、コード補完に移動し、check「入力中に補完を提案する」。
  7. ライブラリ関数または列挙型を入力してお楽しみください!

少なくとも、それは私のために働いた。

153
Chinmay

Xcodeを再起動するだけでうまくいきました。

5
catanore

Generic iOS Deviceでアプリを一度クリーンしてビルドすると、コンパイル時の問題が原因でインテリジェンスが無効になる可能性があります。Xcode8.2.1以降のこのバグが発生しています。

2
Rein rPavi

私のために働いたのは、派生データを削除することでした:

Xcodeの設定->場所->矢印記号で「派生データ」に移動->フォルダを削除

2
user1105951

私もこれに関して大きな問題を抱えています。私にとっては、コンパイルを実行すると、現在の作業ソースファイルのコード補完と書式設定が失われます。戻って別のタブに切り替えて戻った場合、1、2秒後に再び動作し始めます。時にはそれでもうまくいかず、同じタブにとどまり、別のファイルを開いてからナビゲートする必要があります。

Xcodeを開いたままにして、コンピューターを数時間スリープさせてから戻ると、これらの方法でも失敗します。その場合は、Xcodeを終了する必要があり、場合によっては強制的に終了してから、上記の手順に戻ってください。しかし、コンパイルまたはコンパイルして実行するたびに、それをいじる必要がありました。 8.3ベータ版はまだ試していません。

1
bdepaz

「インデックス付け」が機能しないという同じ問題がありました。ポッドと静的ライブラリを使用していたので。静的ライブラリを個別に再構築しただけです。

お役に立てれば。

0
Karen Lusinyan

大きな静的リテラルがある場合は、コメント化してみてください。それらは時々コンパイラをトリップする可能性があります。

0
Eden