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


121

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

ここに画像の説明を入力してください


1
DERIVED DATAフォルダーを削除すると解決しました。別の投稿に感謝します。この投稿への感謝:stackoverflow.com/questions/28429630/...
アーニー

おそらく、索引付けがまだ完了していないためです。
ozgur 2017

1
🙁私のプロジェクトの一つで助けたすべての提案されたソリューションと何を試してみました
アレクサンダーVasenin

3
11.3はこの問題に関する災害です。多くの場合、Xcodeを再起動するだけで効果があります:/
Fattie

回答:


233

試してください:

  1. Xcode> Preferences> Text Editingに移動します
  2. [コード補完]の下で、[入力中に補完候補を表示する]チェックボックスをオフにします
  3. Xcodeを終了してから、Xcodeを再起動します。
  4. Xcode> Preferences> Text Editingに再度移動します
  5. Xcodeを終了してから、Xcodeを再起動します。
  6. 次にコード補完に移動し、「入力中の補完候補」をチェックします。
  7. ライブラリ関数または列挙型を入力してお試しください!

2
素晴らしいソリューション。とても奇妙。これをどのように再現したのでしょうか。
クナルグプタ

1
百万ドルの答え。この定義にも、一定の「ジャンプ」。
OutOnAWeekend

Xcode 11.2でも引き続き必要です。この奇妙なライフハックに感謝します:-)
ロケットガーデン

これはXcodeのバグであり、常に新しい更新が新しい問題を引き起こすため、私にとって有効な解決策は次のとおりです。2-数秒待ちます。3- Xcodeを開きますが、エディター内のどこかをクリックすることさえしないでください。4-インデックス作成が完了するまで待ちます。オートコンプリートが機能するようになりました。
Shahriar

1
XCode 11.5、カタリナ、2020年7月でもまだ必要です。どうもありがとうございます。
Reuben Scratton


30

試すこと:

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->フォルダを削除


ビルドフェーズのコンパイルソースを確認します。

すべて.swift.mプロジェクト内のファイルがこのリストにあるべきか、それらのファイルにはオートコンプリートではないでしょう。


4

エディターを最適化します。

すべてのクラスプロパティと関数でfileprivateを使用して、アイテムごとのコンパイラー作業のスコープを削減できます。

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

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


XCode 9.2では、派生データフォルダーへの矢印記号はなくなりました。fileprivateヒントをありがとう。悪夢は続く...
Sal

まだ矢印記号が表示されます。これは、以前のバージョンの9.2か何かでしたか?
Sethmr 2018年

28

Xcodeバージョン11.0(11A420a)

Lal KrishnaのXcode V11.0のソリューションを試しました。数回うまくいきましたが、後で結果が出ませんでした。

1つの解決策が見つかりました。次の2つのファイルを削除する必要があります。

  1. ライブラリ/開発者/ Xcode /派生データ(前述)
  2. ライブラリ/ Developer / Xcode / UserData / IDEEditorInteractivityHistory

その解決策は今私に役立ちます。他の人に役立つかもしれません😉


3
私のために働いた。Visual Studio 2002(!)はXcode 2009-2019より優れていたとだけ言いたいです。この数年間、Xcodeは非常にバグが多いです。なぜAppleが開発者を気にしないのか、私には理解できません。開発者が作成したXcode!(私はそれを
取り出さ

それは私にとってはうまくいきます:Xcodeを終了し、あなたが言ったように2つのフォルダーを削除し、Xcodeを再起動してすべての問題がなくなりました:D
phuongzzz

20

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

Xcodeターゲットメンバーシップオプションのスクリーンショット

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

すでにオンになっている場合は、オフにしてから再度オンにしてください。私にとって、それはトリックをしました。


そのページを開いて閉じるだけでうまくいきました。よくわかりません。ありがとうございます。
Okhan Okbay 2018年

それはxcode 10で動作しました。ファイルは確かにすでにターゲットのメンバーでした。チェックを外してからもう一度チェックして、そのように認識されるようにしなければなりませんでした。
Jim75 2018年

これはgit mergeの後で起こりました。一方のブランチが現在のプロジェクトファイルを上書きし、もう一方のブランチは正しくマージされなかったと思います。
Asfand Shabbir 2018

11

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

アクセルからのこの答えは私が修正するのに役立ちました。

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

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

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

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

  3. Xcodeを終了

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

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

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

ここに画像の説明を入力してください


11

これは、ファイルに重複した名前を付けた場合にも発生する可能性があります。例えば、

Data.swift

Data.swift


1
私の場合これが問題でした、2つの異なるフォルダーに同じファイル名があります
Raj

これも私に起こります。2つのViewControllerファイル
Shark Deng

1
私の場合、ABCという名前の仮想グループと、ABC.swiftという名前のそのグループ内のファイルがありました。ファイルの名前を変更すると、これが修正されました。ありがとう
Rem-D


5

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

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

これでうまくいきました。それが誰かを助けることを願っています。


4

長い検索の末、ようやく問題を解決しました。Xcode> Preferences> Text Editingの「Code Completion」で、何らかの理由で「Escapeキーを使用して補完候補を表示する」をオンにしました。このチェックボックスをオフにするとすぐに、オートコンプリートはXcodeを再起動する必要さえなく、魅力のように機能しました!(Xcode 10)


4

ここに少しの回避策がありますが、動作します。

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

  2. ビルドフォルダーを消去します... Command + Shift + Options(Alt)+ K

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

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

  4. XCodeを閉じます。

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

ビルドが完了すると、提案が戻ってきます。私はそれを2回試しました。

更新:

場合によっては、ファイル名が重複しているだけで問題が発生することがあります。追加した新しいファイル名が古いファイルと競合していないか、慎重に確認してください。


3

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


2

Xcode(9.2)のオートコンプリートの悪夢を解決しようとして1日を失ったばかりです。派生データの削除は簡単に機能するように見えたが、その後は元に戻った。再起動など、他の提案されたブードゥー教は違いを生むことができませんでした。

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


「その他の提案されたブードゥー教」笑-よくわかりました...アップルのバグの回避策を見つけるのに非常に多くの時間を失いましたが、Androidスタジオの使用を開始したとき、私はxcodeに関する不満を解消しました
JohnV

2

私の場合はファイル固有であるようです(Xcode 9.2)。私にとっての修正は次のとおりです。

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

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


2

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

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

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

  1. DerivedDataを削除(command + shift + K)
  2. ビルドフォルダーのクリーンアップ(command + shift + option + K)
  3. もう一度ビルドを押します(command + B)
  4. Xcodeがビルドツールによるオートコンプリートの処理を妨げるファイルを見つけられなかったというビルドエラーが表示されます。
  5. 表示されている不足しているファイルを修正して修正します。

お役に立てれば



2

Xcode 11.4(11E146)の場合

オートコンプリート機能を破壊するフォルダー名のバックスラッシュ。これが当てはまる場合は、それを削除して、再度ビルドします。

ここに画像の説明を入力してください


1

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


1

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

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

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

これが誰かが30分節約するのに役立つことを願っています:)


理由は私の答えを見てください。
James Bush

@ponury、わかりません... OPの2番目の段落が解決策です。
ブラソフィロ2018年

1

Command + B
またはCommand + R を使用してプロジェクトをビルドまたは実行する
Xcodeが時々台無しになる;)


1
  1. Suggest completions while typingXcode-> Preferences-> Text Editing を選択したかどうかを確認します。
  2. Finderでuser-> Library-> Developer-> Xcode-> DerivedDataに移動し、DerivedDataフォルダーを削除します

1

私のケースは、あまりにも具体的すぎるように見えるかもしれませんが、壊れたオートコンプリートを解決する方法のアイデアを誰かに与えるかもしれません。Xcode 10.2.1。

私の場合、オートコンプリートが完全に機能しなくなり、これらの他の答えのどれも役に立たなかった。さらに、コンピューターのファンの音が大きくなりすぎて、他のアプリが実行されていないことを示している可能性があります。MacBookProラップトップで編集していることに注意してください。それは私が書いた方程式を解析するのに苦労しているエディターとリンクしているようです:

switch mtype {
    case .indeterminate:
      newPosition.x = (frame.width - mainFigureText.frame.width) / 2
    case .right:
      newPosition.x = (((frame.width / 2) - mainFigureText.frame.width) / 2) + (frame.width / 2)
    case .left:
      newPosition.x = (((frame.width / 2) - mainFigureText.frame.width) / 2)
 }

ユーザー設定に応じて、テキストビューを左、右、または中央にアニメーション化しようとしていました。newPositionあるCGPointテキストがアニメーションになること。とにかく、私は方程式を分割し、突然オートコンプリートのすべてが機能し始め、ファンが静かになりました!上記のコードを再入力して、次のコードに置き換えることで、この特定の問題を複数回再現することができました。

let halfFrameWidth: CGFloat = frame.width / 2
let middleLeft = (halfFrameWidth - mainFigureText.frame.width) / 2

switch doseType {
    case .right:
      newPosition.x = middleLeft + halfFrameWidth
    case .left:
      newPosition.x = middleLeft
    default:
      newPosition.x = (frame.width - mainFigureText.frame.width) / 2
 }

1

解決策の山にもう1つ追加したいのは、それが私のために働いた唯一のソリューションであり、ここで見つけることができないためです。

Xcodeには通常、プロジェクトごとに2つのデフォルトのビルド構成が付属しています。ReleaseDebug。と呼ばれる私の単体テスト用の余分なものがありTestingます。Xcode 10.1、10.2、10.3、および11ベータでは、新しいビルドシステムはそれを好まないようで、どちらかを使用した場合にのみオートコンプリートされますReleaseまたはをDebug。カスタムビルド構成を使用すると、ユニットテストで混合(swift + objc)プロジェクトのオートコンプリートが中断されます。


0

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

ここに画像の説明を入力してください


0

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


0

100%オートコンプリートが機能しないという問題がありました。ここに書かれたものはどれも役に立ちませんでした。私が気づいたことの1つ-.xcdatamodelファイルにいくつかのエンティティを追加した直後に壊れました。デフォルトではcodegenクラス定義があります。

したがって、xcodeを再起動しなくても、古いスタイルのcodegen noneを使用して(そしてもちろんクラスを生成して)問題をすぐに修正しても驚かなかった。

ここに画像の説明を入力してください


0

Xcode 11.1では、Clean Build Folder派生データを実行または削除するだけでは、オートコンプリートを修正できませんでした。

Mac再起動した後にのみ、すべてが正常に戻った


0

奇妙な完了/オートコンプリート/インテリセンス(デリゲートやデータソースプロトコルメソッドなどのデフォルトのものを表示しない)で問題が発生した場合は、ターゲットを変更して(たとえば、シミュレーターのiPhone 8から実際のデバイスに)、プロジェクトをビルドし、元のターゲットに切り替えます。 。

Interface Builder(ストーリーボード)の問題と同様に、何も表示されず、ビューの一部を選択するたびに「何も選択されない」だけです。他のXib /ストーリーボードに切り替える(または新規作成する)だけで、そこで機能するかどうかを確認してから切り替えます。

これらの回避策はどちらの場合にも機能しました(Xcode 10.2.1の1つのプロジェクトで1日で両方の問題が発生しました)。私がインターネットフォーラムで目にしたことから、これらはXcode 6.x以降では修正されていないバグのようです。

乾杯!


0

私の場合(Xcode 11.1)、このコマンドでXcodeの自動インデックス作成を停止したときに発生しましたdefaults write com.apple.dt.Xcode IDEIndexDisable -bool true

だから私はそれでロールバックしdefaults write com.apple.dt.Xcode IDEIndexDisable -bool falseます。次にmacOSを再起動し、Xcodeを再度実行します。


0

Xcode 11.3でも同じ問題がありました。上記のいずれも役に立たなかった、私はビルドエラーがあったことが判明した。ビルドエラーを修正するだけで、オートコンプリートが再び機能します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.