Xcode 9 Autocomplete Tidak Berfungsi 100% - Berfungsi Sebagian


121

Pagi ini, Xcode 9.0 (9A235) menampilkan kotak Auto Complete baru / aneh yang sama sekali tidak seperti dulu. Bagaimana cara mendapatkan kotak pelengkapan otomatis penuh sehingga pelengkapan otomatis terlihat seperti biasanya?

masukkan deskripsi gambar di sini


1
Menghapus Folder DATA TERTENTU memecahkannya untuk saya. Terima kasih untuk postingan lain. Terima kasih untuk posting ini: stackoverflow.com/questions/28429630/…
Ernie

Mungkin karena pengindeksan belum selesai.
ozgur

1
Mencoba setiap solusi yang diusulkan dan tidak ada yang membantu dengan salah satu proyek saya 🙁
Alexander Vasenin

3
11.3 adalah bencana terkait masalah ini. Seringkali hanya dengan merestart Xcode membantu: /
Fattie

Jawaban:


236

Mencoba:

  1. Buka Xcode> Preferensi> Pengeditan Teks
  2. Di bawah Penyelesaian kode - Hapus centang 'Sarankan penyelesaian saat mengetik'
  3. Keluar dari Xcode lalu luncurkan kembali Xcode.
  4. Buka Xcode> Preferensi> Pengeditan Teks lagi
  5. Keluar dari Xcode lalu luncurkan kembali Xcode.
  6. Sekarang pergi ke Penyelesaian kode dan centang 'Sarankan penyelesaian saat mengetik'.
  7. Coba ketik fungsi perpustakaan atau enum dan nikmatilah!

2
solusi yang luar biasa. sangat aneh. Saya ingin tahu bagaimana Anda meniru ini.
Kunal Gupta

1
Jawaban jutaan dolar. Ini bahkan memperbaiki 'Jump to Definition ".
OutOnAWeekend

Masih diperlukan di Xcode 11.2, terima kasih untuk peretasan aneh ini :-)
Rocket Garden

Ini aa bug di Xcode karena selalu pembaruan baru menciptakan masalah baru, solusi yang berfungsi untuk saya adalah: 1- Xcode yang cukup. 2- tunggu beberapa detik. 3- Buka Xcode tetapi jangan sentuh apa pun bahkan tidak mengklik di suatu tempat di editor. 4- Tunggu sampai pengindeksan selesai. Pelengkapan otomatis berfungsi sekarang.
Shahriar

1
Masih diperlukan di XCode 11.5, Catalina, Juli 2020. Terima kasih banyak!
Ruben Scratton


30

Hal untuk dicoba:

1

Jalankan perintah ini di direktori proyek jika Anda menggunakan cocoapods:

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


2

Bersihkan Data Cache

Bersihkan Proyek -> Cmd + Shift + K.

Bersihkan Build Folder -> Cmd + Shift + Option + K.

Jika Anda melewatkan langkah pertama:
Hapus Data Berasal
Xcode Preferences-> Locations->
Simbol Panah Membawa Anda ke DerrivedData-> Hapus Folder


3

Periksa Sumber Kompilasi Fase Build Anda.

Setiap .swiftdan .mfile dalam proyek harus ada dalam daftar ini atau tidak akan otomatis melengkapi file tersebut.


4

Optimalkan Editor Anda:

Gunakan fileprivate pada setiap properti kelas dan fungsi yang Anda bisa untuk mengurangi ruang lingkup pekerjaan Compiler per item.

Tulis kode modular / OOP sehingga Anda memiliki lebih sedikit kode untuk dibaca oleh compiler.

Hindari menggunakan Jenis Inferance jika hasilnya adalah kalkulasi yang kompleks, dan cobalah untuk memecah kalkulasi kompleks menjadi let this = smallerOperationpernyataan


Dengan XCode 9.2 tidak ada lagi Simbol Panah di Folder Data Turunan. Terima kasih atas tip fileprivate. Mimpi buruk berlanjut ...
Sal

Saya masih melihat simbol panah. Apakah ini di versi sebelumnya 9.2 atau sesuatu?
Sethmr

28

Versi Xcode 11.0 (11A420a)

Saya telah mencoba solusi dari Lal Krishna untuk Xcode V11.0. Ini berhasil beberapa kali tetapi kemudian saya tidak mendapat hasil.

Saya menemukan satu solusi. Anda harus menghapus dua file:

  1. Library / Developer / Xcode / Derived Data (seperti yang dijelaskan sebelumnya)
  2. Library / Pengembang / Xcode / UserData / IDEEditorInteractivityHistory

Solusi itu membantu saya sekarang. Semoga bermanfaat untuk sesama 😉


3
bekerja untuk saya. Saya hanya ingin mengatakan bahwa Visual Studio 2002 (!) Lebih baik dari Xcode 2009-2019. Selama bertahun-tahun, Xcode sangat bermasalah. Saya tidak mengerti mengapa Apple tidak peduli dengan para pengembang. Xcode dibuat oleh pengembang! (Saya harus mengeluarkannya)
user1105951

Itu berfungsi untuk saya: Keluar dari Xcode, hapus 2 folder seperti yang Anda katakan,
luncurkan

20

Ini bisa terjadi jika file tersebut bukan anggota Target. Buka file di mana pelengkapan otomatis tidak berfungsi dan tunjukkan tab "Utilities" di kanan atas Xcode (biru pada gambar di bawah). Tangkapan layar dari tombol tampilan kanan atas Xcode

Tangkapan layar opsi Keanggotaan Target Xcode

Pastikan Target Anda (biasanya nama aplikasi Anda) dicentang. Pelengkapan otomatis seharusnya bekerja hampir seketika tanpa memulai ulang Xcode, membersihkan, atau menghapus Data Berasal.

Jika sudah dicentang, pastikan untuk hapus centang dan periksa kembali. Bagi saya, itu berhasil.


hanya membuka halaman itu dan menutupnya berhasil. Saya bingung. Terima kasih btw.
Okhan Okbay

Ini berfungsi pada xcode 10. File tersebut memang sudah menjadi anggota target. Saya harus menghapus centang kemudian memeriksanya lagi agar dikenali seperti itu.
Jim75

ini terjadi pada saya setelah git merge. Saya kira satu cabang menulis di atas file proyek saya saat ini dan yang lainnya tidak bergabung dengan benar ke dalamnya.
Asfand Shabbir

11

Saya menggunakan Xcode 10.2 dan saya mengalami masalah yang sama.

Jawaban dari axel ini membantu saya untuk memperbaikinya.

Bagaimanapun, saya akan menjelaskan lebih banyak:

  1. Pergi ke YourProject.xcodeprojdengan mengklik dengan Klik Mouse Kanan dan bukaShow Package Contents
  2. Buka xcuserdatadan hapus fileyouruser.xcuserdatad

Jika Anda juga memiliki xcworkspace(jika Anda sudah menginstal pod ), lakukan langkah 3 & 4, jika tidak, lewati saja langkah 3 & 4:

  1. Pergi ke YourProject.xcworkspacedengan mengklik dengan Klik Mouse Kanan dan bukaShow Package Contents
  2. Buka xcuserdatadan hapus fileyouruser.xcuserdatad

  3. Keluar dari Xcode

  4. Hapus Data Berasal dengan menggunakan Terminal:

rm -rf ~ / Library / Developer / Xcode / DerivedData

  1. Buka Xcode dan periksa apakah berhasil.

masukkan deskripsi gambar di sini


11

Ini juga dapat terjadi jika Anda menamai file secara berlebihan. Sebagai contoh,

Data.swift

Data.swift


1
Dalam kasus saya, inilah masalahnya, saya memiliki nama file yang sama di 2 folder berbeda
Raj

Ini juga terjadi pada saya. Dua file ViewController
Shark Deng

1
Dalam kasus saya, saya memiliki grup virtual bernama ABC dan file di dalam grup itu bernama ABC.swift. Mengganti nama file memperbaiki ini. Terima kasih
Rem-D


5

Silakan coba lakukan ini:

Pilih file >> periksa apakah file telah ditambahkan ke UITesting atau target UnitTesting (File inspector -> Target Membership) . Jika ya, hapus centang keduanya dan pastikan hanya target proyek yang dipilih. Kemudian buat dan coba jika pelengkapan otomatis berfungsi dengan baik.

Ini berhasil untuk saya. Semoga bisa membantu seseorang.


5

Berikut sedikit solusi tetapi berhasil.

  1. Bersihkan proyek ... Command + Shift + K

  2. Bersihkan folder build ... Command + Shift + Options (Alt) + K.

  3. Hapus data turunan untuk proyek ... Ini dapat dilakukan dengan bantuan tautan ini:

    Bagaimana cara menghapus data turunan di Xcode 9?

  4. Tutup XCode.

  5. Buka kembali XCode (biarkan pengindeksan selesai) dan Bangun proyek ... Command + B

Setelah selesai membangun, Saran akan kembali. Saya sudah mencobanya dua kali.

Memperbarui:

Terkadang masalahnya bisa sesederhana nama file duplikat. Periksa dengan cermat apakah ada nama file baru yang Anda tambahkan bertentangan dengan file lama.

Di Xcode 11.4, meskipun Anda memindahkan file yang sudah ada ke grup lain, saran akan hilang. Ini dapat disembuhkan hanya dengan memulai ulang Xcode.


4

Setelah lama mencari, saya akhirnya memperbaiki masalah tersebut untuk saya. Di Xcode> Preferensi> Pengeditan Teks, dalam "Penyelesaian Kode", saya telah memeriksa "Gunakan tombol Escape untuk menunjukkan saran penyelesaian" karena beberapa alasan. Segera setelah saya menghapus centang pada kotak ini, penyelesaian otomatis bekerja seperti pesona, bahkan tanpa perlu memulai ulang Xcode! (Xcode 10)


3

Saya menambahkan di sini apa yang terjadi dalam proyek saya kalau-kalau itu dapat membantu orang lain ... Saya memiliki 2 file dengan nama yang sama dan saya tidak menyadarinya.


2

Baru saja kehilangan satu hari mencoba memecahkan mimpi buruk pelengkapan otomatis Xcode (9.2). Menghapus data yang diturunkan sepertinya berfungsi sebentar kemudian semuanya dikembalikan. Reboot dll dan voodoo lain yang disarankan gagal membuat perbedaan.

Saya menyerah dan mengunduh uji coba AppCode selama 30 hari dari Jet Brains. Pelengkapan otomatis berfungsi dengan baik di sana dan ini mungkin kebetulan tetapi kemudian mulai berfungsi lagi dalam proyek saya di Xcode. Tidak dapat menjamin bahwa itu akan terus bekerja ...


"voodoo lain yang disarankan" lol - bagus sekali ... kami kehilangan begitu banyak waktu untuk mencari solusi untuk bug apel, tetapi saya berhenti mengeluh tentang xcode ketika saya mulai menggunakan studio Android
JohnV

2

Tampaknya file khusus dalam kasus saya (Xcode 9.2) Bagi saya, perbaikannya adalah:

  1. Hapus file masalah (hapus referensi)
  2. Bersihkan dan Bangun
  3. Tambahkan file kembali ke dalam proyek (saya tidak memeriksa target pengujian)
  4. Bangun lagi

Akhirnya setelah 3 jam mencoba semuanya - pelengkapan otomatis berfungsi sebagaimana mestinya.


2

Masalah sebagian besar karena tidak adanya lokasi beberapa file di navigator proyek (kesalahan versi)

  1. Tekan perintah + 1 untuk membuka Project Navigatorpanel
  2. Periksa apakah ada file yang hilang

Atau kamu bisa:

  1. Hapus DerivedData (perintah + shift + K)
  2. Bersihkan folder build (perintah + shift + opsi + K)
  3. Tekan bangun lagi (perintah + B)
  4. Anda akan melihat kesalahan pembuatan bahwa Xcode tidak dapat menemukan beberapa file yang mencegah alat pembangunan untuk memproses pelengkapan otomatis.
  5. Perbaiki dan perbaiki file yang hilang yang Anda lihat.

Semoga ini membantu



2

Untuk Xcode 11.4 (11E146)

Back Slash di nama folder melanggar fitur autocompletion, Jika ini kasusnya, hapus dan buat lagi.

masukkan deskripsi gambar di sini


1

Bagi saya itu terjadi di file pengujian saya, karena itu bukan bagian dari target karena suatu alasan. Menetapkan keanggotaan targetnya memecahkan masalah.


1

Bagi saya, masalah terjadi ketika saya membuang semua perubahan dari satu file (di bawah Kontrol Sumber> Komit), yang secara efektif menghapus file tersebut. Ini yang saya inginkan dan saya pikir file dan semua referensinya akan dihapus juga.

Namun, masih ada referensi ke file tersebut (diperlihatkan dengan warna merah) di navigator Proyek. Menghapus file (sekarang tidak ada) di navigator Proyek secara ajaib mengembalikan penyelesaian otomatis.

Tidak ada jumlah pembersihan, penghapusan data turunan, dll yang membantu. Saya hanya menyadari file yang dihapus masih muncul ketika saya mencoba membangun proyek saya, yang tentu saja gagal karena file itu tidak dapat ditemukan.

Semoga ini akan membantu seseorang menghemat 30 menit :)


Lihat jawaban saya untuk alasannya.
James Bush

@ponury, saya tidak mengerti ... OP paragraf kedua adalah solusi, bukan?
brasofilo

1

Gunakan Command + B
atau Command + R untuk Membangun atau Menjalankan proyek
Xcode terkadang mengacaukan;)


1
  1. periksa apakah Anda memilih Suggest completions while typingdi Xcode -> Preferensi -> Pengeditan Teks
  2. arahkan ke pengguna-> Perpustakaan-> Pengembang-> Xcode-> DerivedData di Finder dan hapus folder DerivedData

1

Kasus saya mungkin tampak terlalu spesifik untuk membantu, tetapi mungkin memberi seseorang gambaran tentang cara menyelesaikan penyelesaian otomatis yang rusak. Xcode 10.2.1.

Dalam kasus saya, pelengkapan otomatis berhenti berfungsi sepenuhnya dan tidak ada jawaban lain yang membantu saya. Selain itu, kipas di komputer dapat terdengar lebih keras yang menunjukkan ada sesuatu yang bekerja terlalu keras (tidak ada aplikasi lain yang berjalan), perlu dicatat bahwa saya sedang mengedit di laptop MacBook Pro. Tampaknya terkait dengan editor yang berjuang untuk mengurai persamaan yang saya tulis:

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)
 }

Saya ingin menganimasikan tampilan teks ke kiri, kanan, atau ke tengah tergantung pada preferensi pengguna. Ini newPositionadalah CGPointteks yang akan dianimasikan. Bagaimanapun, saya membagi persamaan dan tiba-tiba pelengkapan otomatis mulai berfungsi dan kipas menjadi sunyi! Saya dapat membuat ulang masalah khusus ini lebih dari sekali dengan mengetik ulang kode di atas dan kemudian menggantinya dengan:

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

Saya ingin menambahkan satu lagi ke tumpukan solusi, karena ini adalah satu-satunya solusi yang berhasil untuk saya dan tidak dapat ditemukan di mana pun di sini.

Xcode biasanya hadir dengan dua konfigurasi build default untuk setiap project. Release& Debug. Saya memiliki satu ekstra untuk tes unit saya disebut Testing. Di Xcode 10.1, 10.2, 10.3 dan 11 beta, sistem build baru tampaknya tidak menyukainya dan hanya akan selesai otomatis jika Anda menggunakan Releaseatau Debug. Konfigurasi build kustom apa pun merusak penyelesaian otomatis dalam project campuran (swift + objc) dengan pengujian unit.


0

Link ini membantu saya. Buka Pengaturan Build & isi jalur pencarian kerangka kerja. Lihat gambar di bawah ini.

masukkan deskripsi gambar di sini


0

Kesalahan versi dapat merusak fitur pelengkapan otomatis di Xcode.


0

Saya memiliki masalah dengan 100% tidak berfungsi pelengkapan otomatis, tidak ada tulisan di sini yang membantu. Satu hal yang saya perhatikan - itu rusak tepat setelah menambahkan beberapa entitas ke dalam file .xcdatamodel, yang memiliki definisi kelas codegen secara default.

Jadi saya tidak terkejut ketika menggunakan codegen gaya lama tidak ada (dan membuat kelas tentu saja) memperbaiki masalah dengan segera, bahkan tanpa memulai ulang xcode.

masukkan deskripsi gambar di sini


0

Dengan Xcode 11.1, hanya melakukan Clean Build Folderatau menghapus data turunan tidak cukup untuk memperbaiki pelengkapan otomatis.

Hanya setelah me-restart Mac saya , semuanya kembali normal


0

Jika Anda memiliki masalah dengan penyelesaian / penyelesaian otomatis / intellisense yang aneh (tidak menampilkan hal-hal default seperti metode delegasi dan protokol sumber data) ubah saja target Anda (misalnya dari simulator iPhone 8 ke perangkat nyata), buat proyek dan beralih kembali ke target asli Anda .

Mirip dengan masalah dengan Pembuat Antarmuka (storyboard) yang tidak menampilkan apa pun, tetapi hanya "tidak ada yang dipilih" setiap kali Anda memilih bagian mana pun dari tampilan. Cukup beralih ke Xib / Storyboard lain (atau bahkan buat yang baru), periksa apakah berfungsi di sana dan beralih kembali.

Solusi ini berhasil untuk saya dalam kedua kasus (memiliki kedua masalah dalam satu hari dengan satu proyek di Xcode 10.2.1). Dari apa yang saya lihat di seluruh forum internet, tampaknya ini adalah bug yang tidak pernah diperbaiki sejak Xcode 6.x atau lebih.

Bersulang!


0

Dalam kasus saya (Xcode 11.1), Itu terjadi ketika saya menghentikan pengindeksan otomatis Xcode dengan perintah ini defaults write com.apple.dt.Xcode IDEIndexDisable -bool true.

Jadi saya putar balik dengan defaults write com.apple.dt.Xcode IDEIndexDisable -bool false. kemudian restart macOS dan jalankan lagi Xcode.


0

Memiliki masalah yang sama dengan Xcode 11.3. Tidak ada yang di atas tidak membantu, ternyata saya membuat kesalahan. Perbaiki saja kesalahan versi dan pelengkapan otomatis akan berfungsi kembali.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.