何らかの理由で、Xcode 8.2ではコード補完が機能しなくなりました。製品をクリーニングし、Xcodeを再起動し、コンピューターを再起動し、派生データを削除しましたが、まだ運がありません。これをAppleサポートに送信しました。誰もこれに遭遇し、それを修正できましたか?
Xcode 8.2.1でコード補完も機能しなくなり、クリーンアップ、派生データの破棄、または再起動は修正されませんでした。しばらくして、作業中の拡張スコープ内でのみコード補完が壊れていることに気付きました。手動で入力すると、コードが正しく強調表示され、正常にコンパイルされるため、ソースがコード完了を担当するパーサーをスローする問題ではありませんでした。
この非常に単純な例で、それが発生する特定のコンテキストを次に示します。
struct SomeStruct {
static let foobar1 = {
return NSBezierPath()
}()
}
extension SomeStruct {
static let foobar2 = {
return NSBezierPath()
}()
}
コード補完は、foobar1
の実装ブロック内で正常に機能しますが、foobar2
に対しては機能しません。拡張機能内にstatic let
が存在することで、それがトリガーされるようです。この問題は、構造体とクラスの両方で発生します。
Xcodeのバグのように見えるので、私の唯一の回避策はfoobar2
をSomeStruct
のメイン定義に移動することでした。
更新:以下の@Dareonソリューションによると、Xcodeバージョン8.3(8E162)および8.3.2(8E2002)でも動作します。確認してくれてありがとう、@ Dareon。 :)
私は同じ問題に直面していましたが、次のことがうまくいきました。
Xcodeバージョン8.2.1(8C1002)を使用しています。
少なくとも、それは私のために働いた。
Xcodeを再起動するだけでうまくいきました。
Generic iOS Device
でアプリを一度クリーンしてビルドすると、コンパイル時の問題が原因でインテリジェンスが無効になる可能性があります。Xcode8.2.1以降のこのバグが発生しています。
私のために働いたのは、派生データを削除することでした:
Xcodeの設定->場所->矢印記号で「派生データ」に移動->フォルダを削除
私もこれに関して大きな問題を抱えています。私にとっては、コンパイルを実行すると、現在の作業ソースファイルのコード補完と書式設定が失われます。戻って別のタブに切り替えて戻った場合、1、2秒後に再び動作し始めます。時にはそれでもうまくいかず、同じタブにとどまり、別のファイルを開いてからナビゲートする必要があります。
Xcodeを開いたままにして、コンピューターを数時間スリープさせてから戻ると、これらの方法でも失敗します。その場合は、Xcodeを終了する必要があり、場合によっては強制的に終了してから、上記の手順に戻ってください。しかし、コンパイルまたはコンパイルして実行するたびに、それをいじる必要がありました。 8.3ベータ版はまだ試していません。
「インデックス付け」が機能しないという同じ問題がありました。ポッドと静的ライブラリを使用していたので。静的ライブラリを個別に再構築しただけです。
お役に立てれば。
大きな静的リテラルがある場合は、コメント化してみてください。それらは時々コンパイラをトリップする可能性があります。