Xcode 7.3 otomatik tamamlama çok sinir bozucu


96

Xcode'da yeni bir otomatik tamamlama var. Muhtemelen sadece isimlerin başlangıcını kontrol etmediği için yararlı olabilir. Ama çoğu zaman bir sınıf adı veya sabit isim bulmadığını fark ettim. Tüm ismi kendi başıma yazmam gerekiyor. Her şeyden öte bulduğum şey hayatımı zorlaştırıyor ve kod yazmayı daha çok zaman alıyor. Eski çalışma yöntemine geçmenin bir yolu var mı?


7.3'ü beta olarak ele alan kullanıcılar haftalardır bundan şikayet ediyorlar: stackoverflow.com/questions/35586056/…
matt

Eğer elle eski xcode indirebilirsiniz developer.apple.com/downloads : Örneğin xcode 7.2.1 adcdownload.apple.com/Developer_Tools/Xcode_7.2.1/...
George

43
Otomatik tamamlama gibi önemli bir şeyin bozuk olduğu büyük bir sürüm çıkardıklarına inanamıyorum. Sanki Apple'da hiç kimse geliştirme için Xcode kullanmıyor.
soleil

3
Bu, üretkenliğimi o kadar kötü etkiliyor ki, Xcode 7.2.1'e geri dönüyorum, böylece tekrar normal geliştirme hızına geri dönebilirim. Bu sefer Apple'dan genellikle daha fazla rahatsız oluyorum. Sadece beni El Capitan'a Xcode 7.3'ü çalıştırmaya zorladılar, aynı zamanda oraya vardığımda vaat edilen arazinin gerçek olmaktan uzak olduğunu görüyorum. Bu şeyleri hiç test ediyorlar mı? Her zamanki gibi 'onların' geliştiricilerine karşı tipik saygısızlık.
Quintin Willison

2
Dün Xcode 7.3.1 yayınlandı, testlerimden sonra bu hata hala var ... Ama Apple 7.3.1'de düzelttiklerini söylüyor.
Vincent Sit

Yanıtlar:


18

Xcode 7.3.1

  1. Xcode> Tercihler> Metin Düzenleme'de

    işareti kaldırmak Enable type-over completions

  2. Xcode'u yeniden başlat


14

Görünüşe göre XCode -> Tercihler -> Metin Düzenleme'de "Yazma tamamlamalarını etkinleştir" onay kutusunun temizlenmesi hile yapar. En azından benim durumumda, otomatik tamamlama eski bir şekle geri döndü, bu yüzden bundan önce manuel olarak yazmam gereken sınıf adını otomatik tamamlayabilirdi.


Denedim, ancak yine de sınıf adlarını düzgün bir şekilde tamamlamıyor.
Erik B

Ben bir fark görmüyorum. Yine de özel isimleri bitirmeniz gerekiyor ... :(
matthewfx

Bunun işe yaraması için indekslemeyi açmanız gerekir. İndekslemeyi açmak için bunu Xcode'un içinden yapamazsınız. Bir kabukta aşağıdaki satırı yürütmelisiniz. Ardından Xcode'u yeniden başlatın. % varsayılanlar com.apple.dt.Xcode'u sil IDEIndexDisable bkz. stackoverflow.com/questions/7328041/…
andrewz

5

Bu hiçbir şekilde yeterli bir çözüm değil, ANCAK son günlerde akıl sağlığımı (zar zor) korumama izin verdi: Her derlemeden sonra, Türetilmiş Veriler klasörünüzü çöpe atmanız gerekiyor. Bu klasörü içinde bulabilirsiniz Xcode > Preferences > Locations > Derived Data. Her şeyi çöpe atın ve uygun otomatik tamamlama işlevselliğini geri yüklemesi gereken bir yeniden indeksleme adımını başlatır. Ne yazık ki, derledikten sonra otomatik tamamlama davranışının bozuk durumuna geri döndüğünü buldum.


4

sadece Xcode türetilmiş veri klasörünü açın ve klasörü silin

/Users/yourUserName/Library/Developer/Xcode/DerivedData

sonra Xcode'u yeniden başlatın, şimdi otomatik tamamlama bir cazibe gibi çalışıyor


Bu benim için çalıştı, neden olumsuz olarak derecelendirildiğini bilmiyorum.
Mike M

1

Otomatik tamamlamanın bazı "bölümlerinin" bir süre sonra başarısız olduğu izlenimine sahibim. Mac’i yeniden çalıştırmak için yeniden başlatmak için kullanıyorum. Ancak bazen kısa süre sonra yine başarısız olur. Belki @Alex Bykov'un yanıtı yeniden başlatma ile birleştirildiğinde hile yapacak.

Her neyse: Xcode'un otomatik tamamlanması her zaman saçmalıktı. AppCode bunu çok daha iyi hale getiriyordu. Maalesef henüz hızlı değil.


1

Kapalı Xcode, Xcode açıldı, indeksleyelim, çalıştı.


1
Ne yazık ki tek seçenek bu.
thedp

0

bir sınıf adı bulamıyor

Çözüm olarak, Command + Shift + K ve Command + B tuşlarına birkaç kez basmayı deneyebilirsiniz , geçici olarak çalışır.


1
Cmd + Shfit + K (Temiz), Cmd + Shfit + Opt + K (Temiz Yapı Klasör), silinmiş, Xcode kapalı ~/Library/Developer/Xcode/DerivedData, OS X yeniden ve hala yardım etmedi. :-)
TaylanUB

1
Sıfırdan derlemesi 20 dakika süren oldukça büyük bir projemiz var, bu yüzden temizleyip yeniden inşa etmek bizim için bir seçenek değil ...
longbow

0

Xcode 7.3.1

Birkaç gün sonra öğrendiğimiz başka bir olası nedeni paylaşacağım. Birden fazla şemamız var ve bunlardan birinde, köprüleme başlığı artık var olmayan bir dosyayı içe aktarıyordu. Dolayısıyla, derleme ve çalıştırma sırasında kırılmadı (başlık başka bir şemaya ait) ancak otomatik tamamlamanın bozulmasına neden oldu (herhangi bir hedef-c sınıfı bulamadı).

Umarım birine yardımcı olur!


0

Farklı yöntemler denedikten sonra:

  • Türetilmiş Verileri Silin
  • Yapı Ayarlarında Etkinleştirilmiş Modül Değiştirme
  • Tam Temiz
  • Yeniden başlat

Sadece bu işe yaradı:

  • Dosyalarınızda @sondan sonra yorumlanmış (/ * abc * /) kodları bulun ve silin.

Max_B'ye Kredi: https://forums.developer.apple.com/thread/7439

Benim durumumda, diğer projeler otomatik olarak doğru şekilde tamamlanıyordu. Tüm projeleriniz kodu doğru bir şekilde tahmin edemezse, bu farklı bir sorun olabilir ve diğer yanıtlar işe yarayabilir.


-1

Bir OS X uygulaması yapmaya çalışırken bu sorunla karşılaştım ve Xcode 7.3 belgelerinin ve OS X 10.11.4 belgelerinin gerçekten indirildiğinden emin olarak bu sorunu çözebildim. Bunu yapmak, otomatik tamamlama işlevimi tamamen geri yükledi. Tam talimatlarımın yanı sıra benzer bir soruya verdiğim yanıtı aşağıda bulabilirsiniz: https://stackoverflow.com/a/39420664/3444925

Bu sorunu kendim yaşadım ve bununla ilgili diğer tüm benzer soru ve cevaplara baktıktan sonra bir çözüm bulamadım. Ancak sonunda benim için neyin işe yaradığını buldum.

Adresine gidin Xcode -> Preferences -> Components. Orada muhtemelen aşağıdakine benzeyen bir ekran bulacaksınız:

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

Bu, belgelerin indirilmediğini ve bu nedenle, belgeleri indirmeden uygulamayı yeniden endeksleme veya yeniden oluşturma girişimlerinin otomatik tamamlama işlevini kullanmanıza engel olacağını gösterir.

Xcode 7.3 Dokümantasyonunu ve OSX 10.11.4 Dokümantasyonunu indirdikten sonra, bu, otomatik tamamlama işlevini geri almam için yeterliydi (bir OS X uygulaması oluşturmaya çalışıyordum, bu yüzden sizinle ilgili olduğu kadar çok belge indirmekten çekinmeyin ).


Dış kaynaklara bağlantılar teşvik edilmektedir, ancak lütfen bağlantının etrafına bağlam ekleyin, böylece diğer kullanıcılarınız bunun ne olduğu ve neden orada olduğu konusunda fikir sahibi olur. Hedef sitenin erişilemez olması veya kalıcı olarak çevrimdışı olması durumunda, her zaman önemli bir bağlantının en alakalı kısmını alıntılayın.
pableiros

Tam cevabımı buraya bir blok alıntı olarak buraya ekledim @pableiros
jkunzika

-1

Birkaç yeni sınıf dosyası oluşturana kadar bununla karşılaşmadım. Diğer sınıflar iyi çalıştı, ancak otomatik tamamlama yeni dosyalardaki hiçbir şey için çalışmaz ...

DÜZELTME (benim için) - Bu dosyaları, henüz kullanmadığım halde birim test hedefleri de dahil olmak üzere TÜM hedeflerime eklemek zorunda kaldım.

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.