web-dev-qa-db-ja.com

Xcode 9のオートコンプリートが100%動作しない-部分的に動作する

今朝、Xcode 9.0(9A235)には、以前とはまったく異なる新しい/奇妙な自動完了ボックスが表示されます。オートコンプリートが通常のように見えるように、完全なオートコンプリートボックスを取得するにはどうすればよいですか?

enter image description here

53
Ernie

DERIVED DATAフォルダーを削除すると、問題が解決したようです。この投稿のおかげで: Swift println()はコードを書いている間にオートコンプリートオプションを表示しません

40
Ernie

試してください:

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

試すべきこと:

1

cocoapodsを使用している場合、プロジェクトディレクトリでこのコマンドを実行します:

rm -rf ~/Library/Caches/CocoaPods;
rm -rf Pods; rm -rf ~/Library/Developer/Xcode/DerivedData/*;
pod deintegrate; pod setup; pod install;


2

キャッシュデータの消去

プロジェクトのクリーンアップ-> Cmd + Shift + K

ビルドフォルダーのクリーンアップ-> Cmd + Shift + Option + K

ステップ1をスキップした場合:
派生データの削除
Xcode Preferences-> Locations->
矢印記号を使用すると、DerrivedData->フォルダの削除に移動します


3

ビルドフェーズのコンパイルソースを確認してください。

プロジェクト内のすべての.Swiftおよび.mファイルはこのリストに含まれている必要があります。そうでない場合、これらのファイルはオートコンプリートされません。


4

エディターの最適化:

アイテムごとのコンパイラの動作範囲を縮小するために、できるすべてのクラスプロパティと関数でfileprivateを使用します。

モジュラー/ OOPコードを記述して、コンパイラーが読み取るコードを減らします。

結果が複雑な計算である場合は型推論の使用を避け、複雑な計算をlet this = smallerOperationステートメントに分解してください

19
Sethmr

これは、ファイルがターゲットのメンバーでない場合に発生する可能性があります。オートコンプリートが機能していないファイルを開き、Xcodeの右上に「ユーティリティ」タブを表示します(下のスクリーンショットの青)。 Screenshot of Xcode top right view buttons

Screenshot of Xcode Target Membership options

ターゲット(通常はアプリの名前)がチェックされていることを確認します。オートコンプリートは、Xcodeを再起動したり、派生データを削除したり削除したりすることなく、ほぼ瞬時に機能するはずです。

12
Isaiah Turner

テストターゲットからファイルを削除すると、問題が解決しました。

5
Martin Jun

Xcode 10.2を使用していますが、同じ問題がありました。

この回答 fromaxelは修正に役立ちました。

とにかく、もう少し説明します。

  1. マウスの右クリックでクリックしてYourProject.xcodeprojに移動し、Show Package Contentsを開きます
  2. xcuserdataに移動し、youruser.xcuserdatadを削除します

xcworkspaceもある場合(既にpodsがインストールされている場合)、ステップ3&4を実行します。そうでない場合は、ステップ3&4をスキップします。

  1. マウスの右クリックでクリックしてYourProject.xcworkspaceに移動し、Show Package Contentsを開きます
  2. xcuserdataに移動し、youruser.xcuserdatadを削除します

  3. Xcodeを終了

  4. ターミナルを使用して派生データを削除します。

rm -rf〜/ライブラリ/ Developer/Xcode/DerivedData

  1. Xcodeを開き、動作するかどうかを確認します。

enter image description here

5
Gent Berani

これを試してみてください:

ファイルを選択 >> UITestingまたはUnitTestingターゲットにファイルが追加されているかどうかを確認します(ファイルインスペクター->ターゲットメンバーシップ)。その場合は、これら2つのチェックボックスをオフにして、プロジェクトターゲットのみが選択されていることを確認してください。次に、オートコンプリートが正常に機能するかどうかを確認してビルドします。

これは私のために働いた。それが誰かを助けることを願っています。

4

長い間探していたが、ついに問題を解決した。 「Xcode」>「設定」>「テキスト編集」の「コード補完」で、何らかの理由で「エスケープキーを使用して補完候補を表示する」をオンにしました。このボックスのチェックを外すとすぐに、Xcodeを再起動する必要もなく、自動補完が魅力的なように機能しました。 (Xcode 10)

2
Xcoder

これは少しの回避策ですが、動作します。

  1. プロジェクトをクリーンアップ... Command + Shift + K

  2. ビルドフォルダーをクリーンアップします... Command + Shift + Options(Alt)+ K

  3. プロジェクトの派生データを削除...これは、次のリンクを使用して実行できます。

    Xcode 9の派生データを削除するにはどうすればよいですか?

  4. XCodeを閉じます。

  5. XCodeを再度開き(インデックス作成を完了させ)、プロジェクトをビルドします... Command + B

ビルドが完了すると、提案が戻ってきます。私は二度試しました。

2
Abhinav Dobhal

Xcode(9.2)のオートコンプリートの悪夢を解決しようとして1日を失いました。派生データの削除は一時的に機能するように思われ、その後元に戻りました。リブートなど、他の推奨されるブードゥー教徒は違いを生むことができませんでした。

私はあきらめて、Jet BrainsからAppCodeの30日間の試用版をダウンロードしました。オートコンプリートはそこでうまく機能しましたが、これは偶然かもしれませんが、Xcodeのプロジェクトで再び機能し始めました。動作し続けることを保証できません...

2
SimonTheDiver

主にプロジェクトナビゲーターの一部のファイルの場所が見つからないための問題(ビルドエラー)

  1. Command + 1を押してProject Navigatorペインを開きます
  2. 不足しているファイルがあるかどうかを確認します

または、次のことができます。

  1. DerivedDataを削除(command + shift + K)
  2. ビルドフォルダーのクリーンアップ(command + shift + option + K)
  3. もう一度ビルドを押します(command + B)
  4. Xcodeが自動完了を処理するビルドツールを妨げるいくつかのファイルを見つけることができなかったというビルドエラーが表示されるはずです。
  5. 表示される欠落ファイルを修正して修正します。

お役に立てれば

2
Vinh Nguyen

ここで、他の誰かを助けることができるように、プロジェクトで何が起こっているのかを追加しました... 同じ名前のファイルが2つありましたそして、私は気づきませんでした。

1
TomCobo

私の場合(Xcode 9.2)特定のファイルのようです。

  1. 問題ファイルの削除(参照の削除)
  2. クリーンおよびビルド
  3. ファイルをプロジェクトに追加し直します(テストターゲットをチェックしませんでした)
  4. 再ビルド

最後に、すべてを3時間試行した後、オートコンプリートは正常に機能します。

1
Matjan

Command + Bを使用
or Command + R to Build or Runプロジェクト
Xcodeは時々台無しになります;)

1
Mehdi
  1. xcode->環境設定->テキスト編集でSuggest completions while typingを選択したかどうかを確認します
  2. finderでuser-> Library-> Developer-> Xcode-> DerivedDataに移動し、DerivedDataフォルダーを削除します
1
qingfeng

私にとっては、1つのファイル(ソース管理>コミット)のすべての変更を破棄したときに問題が発生し、事実上ファイルが削除されました。これが私が望んでいたことであり、ファイルとそれへのすべての参照も削除されると思いました。

ただし、プロジェクトナビゲータにはファイルへの参照(赤で表示)がまだありました。 Projectナビゲータで(現在は存在しない)ファイルを削除すると、自動補完が魔法のように戻りました。

クリーニング、派生データの削除などは一切助けになりませんでした。プロジェクトをビルドしようとしたときに、削除されたファイルがまだ表示されていることに気付きました。もちろん、ファイルを見つけることができなかったため失敗しました。

これが誰かが30分節約するのを助けることを願っています:)

1
JohnV

多くの理由が考えられます。考えられる理由の1つは、メモリの問題です。つまり、システムのメモリが不足している場合です。

MacOSの「Activity Monitor」を使用して、メモリ使用量を確認できます。

でプロジェクトをクリーニングしてみてください command + shift + k

Xcodeを終了して再度起動し、一度ビルドしてからオートコンプリートを入力すると、正常に動作するはずです。

1
Bharath

私にとっては、何らかの理由でターゲットの一部ではなかったため、テストファイルで発生していました。ターゲットメンバーシップを設定すると、問題は解決しました。

1
Menno

ビルドエラーは、Xcodeのオートコンプリート機能を破壊する可能性があります。

0
Adobels

このリンクは私を助けてくれました。ビルド設定を開き、フレームワークの検索パスを入力します。下の画像をご覧ください。

enter image description here

0
Muruganandham K