Xcode 9 Otomatik Tamamlama% 100 Çalışmıyor - Kısmen Çalışıyor


121

Bu sabah, Xcode 9.0 (9A235), eskisi gibi olmayan yeni / garip bir Otomatik Tamamlama kutusu gösteriyor. Otomatik tamamlamanın genellikle göründüğü gibi görünmesi için tam otomatik tamamlama kutusunu nasıl edinebilirim?

görüntü açıklamasını buraya girin


1
DERIVED DATA Klasörünü silmek benim için çözdü. Başka bir gönderi için teşekkürler. Bu gönderi sayesinde: stackoverflow.com/questions/28429630/…
Ernie

Muhtemelen bunun nedeni indekslemenin henüz tamamlanmamasıdır.
ozgur

1
Önerilen her çözümü denedim ve hiçbir şey projelerimden birinde yardımcı olmadı 🙁
Alexander Vasenin

3
11.3 bu konuda bir felakettir. Genellikle
Xcode'u

Yanıtlar:


236

Deneyin:

  1. Git Xcode> Tercihler> Metin Düzenleme
  2. Kod tamamlama altında - "Yazarken tamamlamaları öner" seçeneğinin işaretini kaldırın
  3. Xcode'dan çıkın ve ardından Xcode'u yeniden başlatın.
  4. Git Xcode> Tercihler> Metin Düzenleme tekrar
  5. Xcode'dan çıkın ve ardından Xcode'u yeniden başlatın.
  6. Şimdi Kod tamamlama ve gidip kontrol 'yazarak ederken tamamlamaları öner'.
  7. Kitaplık işlevi veya numaralandırmayı deneyin ve keyfini çıkarın!

2
harika çözüm. çok garip. Bunu nasıl kopyaladın merak ediyorum.
Kunal Gupta

1
Milyon dolarlık cevap. Bu, "
Tanıma

Xcode 11.2'de hala gerekli, bu garip hayat hack için teşekkür ederim :-)
Rocket Garden

Xcode'daki bu bir hata, her zaman olduğu gibi yeni güncellemeler yeni sorunlar yaratır, benim için çalışan çözüm: 1- Oldukça Xcode. 2- Birkaç saniye bekleyin. 3- Xcode'u açın, ancak düzenleyicide herhangi bir yere tıklamadan hiçbir şeye dokunmayın. 4- İndeksleme bitene kadar bekleyin. Otomatik tamamlama artık çalışıyor.
Shahriar

1
XCode 11.5, Catalina, Temmuz 2020 için hala gerekli. Çok teşekkürler!
Reuben Scratton


30

Denenecek şeyler:

1

Cocoapod kullanıyorsanız bu komutu proje dizininde çalıştırın:

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


2

Önbelleğe Alınmış Verileri Temizle

Projeyi Temizle -> Cmd + Shift + K

Derleme Klasörünü Temizle -> Cmd + Shift + Option + K

Birinci adımı atladıysanız:
Türetilmiş Verileri Sil
Xcode Preferences-> Locations->
Ok Sembolü Sizi DerrivedData-> Klasörü Sil'e götürür


3

Derleme Aşamanızın Derleme Kaynaklarını kontrol edin.

Her .swiftve .mprojede dosya bu listede olmalı yoksa bu dosyalarda otomatik tamamlanır olmayacaktır.


4

Editörünüzü optimize edin:

Derleyicilerin öğe başına çalışmasının kapsamını azaltmak için yapabileceğiniz her sınıf özelliği ve işlevinde fileprivate kullanın.

Derleyicinin okuyacağı daha az koda sahip olmak için modüler / OOP kodu yazın.

Sonuç karmaşık bir hesaplama olduğunda Tür Çıkarımını kullanmaktan kaçının ve karmaşık hesaplamaları let this = smallerOperationifadelere ayırmaya çalışın


XCode 9.2 ile artık Türetilmiş Veri Klasörüne bir Ok Sembolü yoktur. Dosya özel ipucu için teşekkürler. Kabus devam ediyor ...
Sal

Hala ok sembolünü görüyorum. Bu, 9.2'nin önceki bir sürümünde miydi?
Sethmr

28

Xcode Sürümü 11.0 (11A420a)

Xcode V11.0 için Lal Krishna'nın çözümünü denedim . Birkaç kez işe yaradı ama sonra bir sonuç alamadım.

Bir çözüm buldum. İki dosyayı silmelisiniz:

  1. Kitaplık / Geliştirici / Xcode / Türetilmiş Veriler (daha önce açıklandığı gibi)
  2. Kütüphane / Geliştirici / Xcode / UserData / IDEEditorInteractivityHistory

Bu çözüm şimdi bana yardımcı oluyor. Başkaları için faydalı olabilir 😉


3
benim için çalıştı. Visual Studio 2002'nin (!) Xcode 2009-2019'dan daha iyi olduğunu söylemek istiyorum. Bunca yıldır, Xcode çok hatalı. Apple'ın neden geliştiricileri önemsemediğini anlamıyorum. Geliştiriciler tarafından yapılan Xcode! (
Çıkarmam

Bu benim için çalışıyor:
Xcode'dan

20

Bu, dosya Hedef'in bir üyesi olmadığında olabilir. Otomatik tamamlamanın çalışmadığı dosyayı açın ve Xcode'un sağ üst köşesindeki "Yardımcı Programlar" sekmesini gösterin (aşağıdaki ekran görüntüsünde mavi). Xcode sağ üst görünüm düğmelerinin ekran görüntüsü

Xcode Hedef Üyelik seçeneklerinin ekran görüntüsü

Hedefinizin (genellikle uygulamanızın adının) işaretlendiğinden emin olun. Otomatik tamamlama, Xcode'u yeniden başlatmadan, Türetilmiş Verileri temizlemeden veya silmeden neredeyse anında çalışmalıdır.

Zaten kontrol edilmişse, işaretini kaldırdığınızdan ve tekrar kontrol ettiğinizden emin olun. Benim için hile yaptı.


sadece o sayfayı açmak ve kapatmak işe yaradı. Kafam karıştı. Teşekkürler btw.
Okhan Okbay

Xcode 10 üzerinde çalıştı. Dosya gerçekten de hedefin üyesiydi. Bu şekilde tanınması için işaretini kaldırmam ve sonra tekrar kontrol etmem gerekti.
Jim75

bu bana git merge'den sonra oldu sanırım bir dal mevcut proje dosyamın üzerine yazdı ve diğeri bununla doğru şekilde birleşmedi.
Asfand Shabbir

11

Xcode 10.2 kullanıyorum ve aynı sorunu yaşadım.

Bu cevap dan axel beni düzeltmek için yardımcı oldu.

Her neyse, biraz daha anlatacağım:

  1. YourProject.xcodeprojSağ Fare Tıklamasıyla tıklayarak gidin ve açınShow Package Contents
  2. Gidin xcuserdatave silinyouruser.xcuserdatad

Ayrıca xcworkspace(zaten kurulu herhangi bir bölmeniz varsa ) 3. ve 4. adımları uygulayın, yoksa 3. ve 4. adımları atlayın:

  1. YourProject.xcworkspaceSağ Fare Tıklamasıyla tıklayarak gidin ve açınShow Package Contents
  2. Gidin xcuserdatave silinyouruser.xcuserdatad

  3. Xcode'dan çık

  4. Türetilmiş Verileri Terminal Kullanarak Silin :

rm -rf ~ / Kitaplık / Geliştirici / Xcode / DerivedData

  1. Xcode'u açın ve çalışıp çalışmadığını kontrol edin.

görüntü açıklamasını buraya girin


11

Bu, dosyalarınızı fazladan adlandırdıysanız da olabilir. Örneğin,

Data.swift

Data.swift


1
Benim durumumda sorun
Raj

Bu bana da oluyor. İki ViewController dosyası
Shark Deng

1
Benim durumumda ABC adında bir sanal grubum ve bu grup içinde ABC.swift adında bir dosyam vardı. Dosyayı yeniden adlandırmak bu sorunu çözdü. Teşekkürler
Rem-D


5

Lütfen bunu yapmayı deneyin:

Dosyayı seçin >> dosyanın UITesting veya UnitTesting hedeflerine eklenip eklenmediğini kontrol edin (Dosya denetçisi -> Hedef Üyelik) . Öyleyse, lütfen bu ikisinin işaretini kaldırın ve yalnızca proje hedefinin seçildiğinden emin olun. Ardından, otomatik tamamlamanın düzgün çalışıp çalışmadığını oluşturun ve deneyin.

Bu benim için çalıştı. Umarım birine yardımcı olur.


5

İşte biraz geçici çözüm ama işe yarıyor.

  1. Projeyi temizleyin ... Command + Shift + K

  2. Derleme klasörünü temizleyin ... Command + Shift + Seçenekler (Alt) + K

  3. Proje için türetilmiş verileri silin ... Bu, bu bağlantı yardımıyla yapılabilir:

    Xcode 9'da türetilmiş verileri nasıl silebilirim?

  4. XCode'u kapatın.

  5. XCode'u yeniden açın (indekslemenin tamamlanmasına izin verin) ve Projeyi oluşturun ... Command + B

Bina ile bittikten sonra öneriler geri gelecektir. Ben iki kere denedim.

Güncelleme:

Bazen sorun Yinelenen dosya adları kadar basit olabilir. Eklediğiniz yeni dosya adlarının eski dosyalarla çakışıp çakışmadığını dikkatlice kontrol edin.

Xcode 11.4'te, mevcut bir dosyayı başka bir gruba taşısanız bile öneriler kaybolur. Bu, yalnızca Xcode'u yeniden başlatarak iyileştirilebilir.


4

Uzun bir arama süresinden sonra, nihayet sorunu benim için çözdüm. Xcode> Tercihler> Metin Düzenleme'de, "Kod Tamamlama" bölümünde, bir nedenle "Tamamlama önerilerini göstermek için Çıkış tuşunu kullan" seçeneğini işaretledim. Bu kutunun işaretini kaldırır kaldırmaz, otomatik tamamlama, Xcode'u yeniden başlatmaya bile gerek kalmadan bir cazibe gibi çalıştı! (Xcode 10)


3

Buraya projemde neler olup bittiğini ekledim sırf başkasına yardımcı olabilir diye ... Aynı isimli 2 dosyam vardı ve farkında değildim.


2

Xcode'un (9.2) otomatik tamamlama kabusunu çözmeye çalışırken bir gün kaybettim. Elde edilen verilerin silinmesi kısa bir süre için işe yarıyor gibi göründü ve ardından işler tersine döndü. Yeniden başlatmalar vb. Ve önerilen diğer voodoo bir fark yaratamadı.

30 günlük AppCode denemesinden vazgeçtim ve Jet Brains'den AppCode'u indirdim. Otomatik tamamlama orada iyi çalıştı ve bu belki tesadüf ama sonra Xcode'daki projemde tekrar çalışmaya başladı. Çalışmaya devam edeceğini garanti edemem ...


"diğer önerilen voodoo" lol - çok iyi
söyledin ... Apple'ın

2

Benim durumumda dosyaya özel görünüyor (Xcode 9.2) Benim için düzeltme şuydu:

  1. Sorunlu dosyayı silin (referansı kaldırın)
  2. Temizleyin ve Oluşturun
  3. Dosyayı projeye geri ekleyin (test hedeflerini kontrol etmedim)
  4. Yeniden inşa et

Sonunda 3 saat her şeyi denedikten sonra - otomatik tamamlama olması gerektiği gibi çalışıyor.


2

Çoğunlukla proje gezgininde bazı dosyaların eksik konumu olduğu için sorunlar (derleme hataları)

  1. Açık basın komut + 1 Project Navigatorbölmesinde
  2. Eksik dosya olup olmadığını kontrol edin

Veya şunları yapabilirsiniz:

  1. DerivedData'yı Sil (command + shift + K)
  2. Derleme klasörünü temizle (command + shift + option + K)
  3. İnşaata tekrar basın (command + B)
  4. Xcode'un, derleme aracının otomatik tamamlamayı işlemesini engelleyen bazı dosyaları bulamadığına dair derleme hatası görmelisiniz.
  5. Gördüğünüz eksik dosyaları düzeltin ve düzeltin.

Bu yardımcı olur umarım



2

Xcode 11.4 (11E146) için

Otomatik tamamlama özelliğini bozan klasör adındaki Back Slash, bu durumda kaldırıp yeniden oluşturun.

görüntü açıklamasını buraya girin


1

Benim için test dosyamda oluyordu çünkü nedense bir hedefin parçası değildi. Hedef üyeliğini belirlemek sorunu çözdü.


1

Benim için, bir dosyadaki tüm değişiklikleri (Kaynak Kontrolü> Kaydet altında) ve dosyayı etkin bir şekilde silen tüm değişiklikleri attığımda sorun ortaya çıktı. İstediğim buydu ve dosyanın ve ona yapılan tüm referansların da silineceğini düşündüm.

Bununla birlikte, Proje gezgininde dosyaya (kırmızıyla gösterilen) hala bir referans vardı. Proje gezginindeki (artık var olmayan) dosyanın silinmesi, otomatik tamamlamayı sihirli bir şekilde geri getirdi.

Hiçbir temizlik, elde edilen verileri silme vb. Yardımcı olmadı. Sadece projemi oluşturmaya çalıştığımda silinen dosyanın hala gösterildiğini fark ettim, bu tabii ki başarısız oldu çünkü o dosyayı bulamadı.

Umarım bu, birinin 30 dakika tasarruf etmesine yardımcı olur :)


Nedeni için cevabımı görün.
James Bush

@ponury, anlamadım ... OP ikinci paragraf bir çözüm, değil mi?
brasofilo

1

Kullanım Command + B
veya Command + R hiç Build'a veya Run projesi
Xcode bazen işler karışıyor;)


1
  1. Suggest completions while typingXcode -> Tercihler -> Metin Düzenleme'de seçip seçmediğinizi kontrol edin
  2. Finder'da user-> Library-> Developer-> Xcode-> DerivedData seçeneğine gidin ve DerivedData klasörünü silin

1

Durumum yardımcı olamayacak kadar spesifik görünebilir, ancak bozuk otomatik tamamlamanın nasıl çözüleceği konusunda birine bir fikir verebilir. Xcode 10.2.1.

Benim durumumda, otomatik tamamlama tamamen çalışmayı durdurdu ve bu diğer yanıtların hiçbiri bana yardımcı olmadı. Ek olarak, bilgisayardaki fanın, bir şeyin aşırı çalıştığını (başka bir uygulamanın çalışmadığını) gösteren daha yüksek sesle çalıştığı duyulabiliyordu, bir MacBook Pro dizüstü bilgisayarda düzenleme yaptığıma dikkat edilmelidir. Yazdığım denklemi çözümlemeye çalışan editörle bağlantılı görünüyordu:

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

Kullanıcı tercihlerine bağlı olarak bir metin görünümünü sola, sağa veya ortaya doğru canlandırmak istiyordum. newPositionBir olan CGPointmetin için animasyon olacağı. Her neyse, denklemleri böldüm ve birden bire otomatik tamamlama çalışmaya başladı ve fan sessizleşti! Yukarıdaki kodu yeniden yazıp ardından aşağıdaki ile değiştirerek bu belirli sorunu birden çok kez yeniden oluşturabildim:

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

Çözüm yığınına bir tane daha eklemek istiyorum, çünkü benim için işe yarayan tek çözüm ve burada bulunacak hiçbir yer yok.

Xcode normalde her proje için iki varsayılan yapı yapılandırmasıyla birlikte gelir. Release& Debug. Aranan birim testleri için fazladan bir tane var Testing. Xcode 10.1, 10.2, 10.3 ve 11 beta sürümlerinde, yeni derleme sistemi bundan hoşlanmıyor gibi görünüyor ve yalnızca Releaseveya Debug. Herhangi bir özel derleme yapılandırması, birim testleri ile karışık (swift + objc) projede otomatik tamamlamayı bozar.


0

Bu Bağlantı bana yardımcı oldu. Derleme Ayarlarını açın ve çerçeve arama yollarını doldurun. Aşağıdaki resme bakın.

görüntü açıklamasını buraya girin


0

Derleme hataları, Xcode'daki otomatik tamamlama özelliğini bozabilir.


0

Otomatik tamamlamanın% 100 çalışmaması sorununu yaşadım, burada yazılanların hiçbiri yardımcı olmadı. Fark ettiğim bir şey - varsayılan olarak codegen sınıf tanımına sahip bazı varlıkları .xcdatamodel dosyasına ekledikten hemen sonra kırıldı.

Bu yüzden, xcode'u yeniden başlatmadan bile, eski tarz kod oluşturucu kullanmadığımda (ve tabii ki sınıfları oluştururken) sorunu hemen çözdüğünde şaşırmadım.

görüntü açıklamasını buraya girin


0

Xcode 11.1 ile, Clean Build Foldertüretilen verileri basitçe gerçekleştirmek veya silmek, otomatik tamamlamayı düzeltmek için yeterli değildi.

Sadece Mac'imi yeniden başlattıktan sonra her şey normale döndü


0

Garip tamamlama / otomatik tamamlama / intellisense ile ilgili sorununuz varsa (temsilciler ve veri kaynağı protokolleri yöntemleri gibi varsayılan şeyleri göstermiyorsanız) sadece hedefinizi değiştirin (örn. Simülatör iPhone 8'den gerçek cihaza), projeyi oluşturun ve orijinal hedefinize geri dönün .

Arayüz Oluşturucu (storyboard'lar) ile ilgili hiçbir şey göstermeyen, ancak görünümün herhangi bir bölümünü seçtiğinizde yalnızca "hiçbir şey seçilmedi" sorunlarına benzer. Sadece diğer Xib / Storyboard'a geçin (hatta yenisini oluşturun), orada çalışıp çalışmadığını kontrol edin ve geri dönün.

Bu geçici çözümler benim için her iki durumda da işe yaradı (Xcode 10.2.1'de bir projeyle bir günde her iki sorunu da yaşadı). Tüm internet forumlarında gördüğüm kadarıyla, bunlar Xcode 6.x'ten beri asla düzeltilmeyen hatalar gibi görünüyor.

Şerefe!


0

Benim durumumda (Xcode 11.1), bu komutla Xcode otomatik indekslemeyi durdurduğumda oldu defaults write com.apple.dt.Xcode IDEIndexDisable -bool true.

Ben de geri alıyorum defaults write com.apple.dt.Xcode IDEIndexDisable -bool false. ardından macOS'u yeniden başlatın ve Xcode'u tekrar çalıştırın.


0

Xcode 11.3 ile aynı sorunu yaşadım. Yukarıdaki hiçbir şey yardımcı olmadı, inşa hatalarım olduğu ortaya çıktı. Yalnızca derleme hatalarını düzeltin ve otomatik tamamlama tekrar çalışacaktır.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.