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?
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?
Yanıtlar:
Deneyin:
DERIVED DATA klasörünü silmek sorunumu çözmüş gibi görünüyordu. Bu gönderi için teşekkürler: swift println () kodu yazarken otomatik tamamlama seçeneklerini göstermiyor
Denenecek şeyler:
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;
Ö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
Derleme Aşamanızın Derleme Kaynaklarını kontrol edin.
Her .swift
ve .m
projede dosya bu listede olmalı yoksa bu dosyalarda otomatik tamamlanır olmayacaktır.
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 = smallerOperation
ifadelere ayırmaya çalışın
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:
Bu çözüm şimdi bana yardımcı oluyor. Başkaları için faydalı olabilir 😉
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).
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ı.
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:
YourProject.xcodeproj
Sağ Fare Tıklamasıyla tıklayarak gidin ve açınShow Package Contents
xcuserdata
ve 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:
YourProject.xcworkspace
Sağ Fare Tıklamasıyla tıklayarak gidin ve açınShow Package Contents
Gidin xcuserdata
ve silinyouruser.xcuserdatad
Xcode'dan çık
rm -rf ~ / Kitaplık / Geliştirici / Xcode / DerivedData
Bu, dosyalarınızı fazladan adlandırdıysanız da olabilir. Örneğin,
Data.swift
Data.swift
Dosyayı Test Hedeflerinden kaldırmak sorunumu çözdü.
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.
İşte biraz geçici çözüm ama işe yarıyor.
Projeyi temizleyin ... Command + Shift + K
Derleme klasörünü temizleyin ... Command + Shift + Seçenekler (Alt) + K
Proje için türetilmiş verileri silin ... Bu, bu bağlantı yardımıyla yapılabilir:
XCode'u kapatın.
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.
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)
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 ...
Benim durumumda dosyaya özel görünüyor (Xcode 9.2) Benim için düzeltme şuydu:
Sonunda 3 saat her şeyi denedikten sonra - otomatik tamamlama olması gerektiği gibi çalışıyor.
Çoğunlukla proje gezgininde bazı dosyaların eksik konumu olduğu için sorunlar (derleme hataları)
Project Navigator
bölmesindeVeya şunları yapabilirsiniz:
Bu yardımcı olur umarım
Xcode 11.3, macOS kataloğu
işlem parsecd, cpu'nun% 100'üne ulaşıyor, bu yüzden öldür bana yardımcı oluyor
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 :)
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. newPosition
Bir olan CGPoint
metin 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
}
Çö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 Release
veya Debug
. Herhangi bir özel derleme yapılandırması, birim testleri ile karışık (swift + objc) projede otomatik tamamlamayı bozar.
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.
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.
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!
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.
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.