Pembekuan atau Lambat Indeks Xcode Swift


101

Mungkin ini hanya saya yang mengalami "fitur" yang mengganggu:

Setelah memutakhirkan dari Xcode 6.0.1 ke Xcode 6.1, banyak hal berubah. Xcode 6.1 selamanya mengindeks proyek atau menyusun file sumber. Proyek ini tidak terlalu besar. Ini hanya berisi banyak file Swift dan AWS SDK 2.0 Cocoapods di ruang kerja. Saya tidak berpikir itu harus mencegah keseluruhan untuk mengindeks dan mengkompilasi dengan lancar. Saya mencoba dengan beberapa aws-sdk-ios-samples, hanya untuk melihat cara kerja Xcode 6.1 pada mereka, dan akhirnya menunggu selamanya.

Solusi apa yang telah saya coba sejauh ini:

  1. Menghapus "Data Berasal" di Penyelenggara, dan membuka kembali dan ruang kerja. (gagal untuk memperbaiki)
  2. "Tampilkan Isi Paket" pada file .xcodeproj dan hapus .xcworkspace seperti pada ( Xcode 4 - kinerja lambat )

Sayangnya, tidak ada yang berhasil.

PS mungkin saya harus mencoba membuat ulang proyek? Pengaturan komputer saya: MacBook Pro (Retina, 13 inci, Pertengahan 2014), Memori 8 GB 1600 MHz DDR3, dengan Yosemite. (Saya pikir ini cukup untuk menjalankan proyek kecil ini.)



2
Saya tidak akan banyak membantu tetapi yang saya lakukan adalah ... Saya hanya membiarkan xcode 6.x mengambil waktu. Jika saya melawannya, itu membuat saya kacau jadi saya hanya menunggu sampai xcode 6 dimulai. Aku membiarkannya berjalan, itu pengindeksan yang bodoh. Saya kemudian memulai simulator iOS secara terpisah dan menunggu sampai papan loncatan bodoh itu muncul. Akhirnya ketika saya menjalankan sebuah proyek, saya mengabaikan fakta bahwa Indexing berkali-kali mengatakan "Dijeda" dan saya berdoa untuk <# godObject #>, minum kopi dan mencoba masuk ke mode zen. Tapi * huh *, kasar: / dan saya sangat menyukai xcode 5.1.1: |
staticVoidMan

Jawaban ini berhasil untuk saya: stackoverflow.com/a/33395844/242933
ma11hew28

Jawaban:


72

Saya mencoba banyak saran di atas termasuk memecah file, menginstal Xcode 6.2 beta, dan melanggar pernyataan penggabungan string. Apa yang akhirnya berhasil bagi saya adalah memecah array deklarasi literal kamus yang saya gunakan untuk data pengujian menjadi beberapa .appendpernyataan.

// This causes indexing/building to hang...
var test = [ [ "a": false, "b": "c" ],
             [ "a": false, "b": "c" ],
             [ "a": false, "b": "c" ],
             [ "a": false, "b": "c" ],
             [ "a": false, "b": "c" ],
             [ "a": false, "b": "c" ] ]

// This works fine.
var test = [ [ "a": false, "b": "c" ] ]
test.append([ "a": false, "b": "c" ])
test.append([ "a": false, "b": "c" ])
test.append([ "a": false, "b": "c" ])
test.append([ "a": false, "b": "c" ])
test.append([ "a": false, "b": "c" ])

Juga, untuk apa nilainya, entri ke-6 dalam larik ini adalah yang menyebabkan masalah bagi saya; lima bekerja dengan baik.


Solusi yang sama berhasil untuk saya dengan kamus. Memulainya secara langsung menyebabkan pengindeksan yang berjalan selamanya. Memulainya secara init()bertahap memang bekerja dengan sempurna. Perlu disebutkan bahwa saya harus menghapus .xcworkspacefile juga.
jboi

Memperbaiki untuk saya tanpa kamus yang terlibat. Hanya array tupel yang baik-baik saja dengan 8 elemen dalam deklarasi. Harus kembali untuk menambahkan dengan 11 elemen. Tidak repot-repot menemukan titik putus yang tepat tetapi membangun 10x lebih cepat. Xcode versi 6.1.1 (6A2008a) di Mavericks.
Josh

Saya mengatasi masalah dengan tepat 6 elemen juga. 5 baik-baik saja.
Justin Lau

Apakah ini masalah XCode atau masalah kompiler?
Sljux

4
Saya mengalami ini di Xcode 7.3 dengan literal array 229 item. Alih-alih memecahnya, saya menambahkan deklarasi tipe alih-alih membiarkan Swift menyimpulkan tipenya. Setelah saya melakukan itu, itu berhasil.
Brigham

34

Satu-satunya solusi yang berfungsi untuk saya adalah menghapus semua data turunan (tidak hanya untuk proyek saat ini, cukup bersihkan seluruh folder) dan kemudian restart Xcode.

  1. Buka File / Preferensi di Xcode

  2. Klik Lokasi di ujung kanan jendela pop up

  3. Klik pada ikon panah kecil di samping "/Users/Mac/Library/Developer/Xcode/DerivedData"....it membawa Anda ke folder Xcode yang berisi folder DerivedData (yang berisi semua data turunan dari proyek Anda sebelumnya .)

  4. HAPUS folder DerivedData


1
@Bayu_joo Apakah Anda mengikuti langkah-langkahnya? Jika Anda pergi ke Window, Organizer, Projects, Delete Derived Data, itu tidak akan berhasil. Anda harus melalui Preferensi.
ericgu

@ericgu Ya, tapi tidak berhasil. Saya memperbaiki masalah saya, meskipun, itu terkait dengan saya menginisialisasi kamus dengan data hardcode dalam satu kesempatan. Ketika saya memindahkan kode untuk menambahkan data hardcode satu per satu, masalah pembekuan / lambat segera menghilang.
Travis M.

Folder di ~ / Library / Developer / Xcode / DerivedData / di mesin saya. Anda juga dapat menemukannya dengan membuka Window> Projects di Xcode.
Suragch

Terima kasih. Ini membantu. Masalah "pengindeksan selamanya" dimulai tepat setelah saya memperbarui versi cocoaPod saya dan menjalankan penginstalan pod.
WKL

11

Apakah Anda menggunakan CocoaPods? Saya mengalami masalah yang sama sebelumnya hari ini. (Menggunakan xCode 6.1.1)

Untuk memperbaiki masalah ini, saya menghapus semua yang ada di ~/Library/Developer/Xcode/DerivedData, Podsfolder di direktori proyek saya, dan <project>.xcworkspace.

Saya kemudian membuka terminal, menavigasi ke direktori proyek saya, dan menjalankan pod installlagi.


1
Ya saya lakukan. Untuk saat ini Xcode berfungsi dengan baik. Tapi masih dari waktu ke waktu memberikan kesalahan crash sumber. Solusi saya adalah menghapus folder data turunan.
leonard

Senang melihat bahwa ini juga berhasil untuk orang lain :). Sepertinya xCode mencoba mengindeks Pustaka CocoaPod dan macet di suatu tempat.
Michael Schinis

1
Menghapus folder Pods dan file <project> .xcworkspace, dan kemudian menjalankan pod install kembali bekerja.
KML

9

Memiliki masalah yang sama hari ini. Xcode 6.3.2, proyek Swift berukuran sedang. Pada satu titik itu mulai mengindeks dan tidak akan pernah menyelesaikan pengindeksan. Kode yang menyebabkan ini adalah kamus berjenis [String: [String]], jadi dikt kunci-string dengan larik string sebagai nilai. Saya memiliki dua di antaranya dengan kunci dari A hingga Z dan masing-masing dari 26 entri ini berisi array string dengan 5 hingga 10 string.

Menghapus data turunan tidak membantu. Hanya mengomentari penis itu membuatnya pergi lagi.

Sejujurnya, ini konyol! Apple perlu memperbaiki Xcode! Ini sudah sangat lambat saat menyusun proyek Swift tetapi bug seperti ini adalah penghenti. Saya tidak bisa melakukan pekerjaan saya dengan baik dengan ini!


6

Bagi mereka yang masih mengalami masalah ini, ini adalah solusi yang saya nikmati yang mencegah Anda harus memasukkan objek satu per satu:

// instead of this, which freezes indexing
let keys = [keyQ, keyW, keyE, keyR, keyT, keyY, ... keyM]    

// and instead of this, which is ugly & lengthy
var keys = [KeyboardKey]()
keys.append(keyQ)
keys.append(keyW)
...
keys.append(keyM)

// use this:
var keys = [KeyboardKey]()
keys.appendContentsOf([keyQ, keyW, keyE, keyR, keyT, keyY, ... keyM])

1
Wow ... Saya mengalami masalah yang sama persis. Terima kasih! Saya melaporkannya sebagai bug ke Apple. Melakukan apa yang Anda katakan tidak berhasil untuk saya. Saya harus memecah array panjang saya menjadi array yang lebih kecil masing-masing dengan lima elemen atau kurang.
ma11hew28

5

Bagi saya, saya mencoba semua hal di atas tetapi tidak berhasil; tetapi yang harus saya lakukan hanyalah menghapus folder data turunan, lalu membuka proyek acak lainnya, menunggu hingga terindeks dan sekarang proyek asli saya (tidak berfungsi) berfungsi!

Bantulah dunia pengembangan dan jadikan kompiler cepat Anda open source- jadi kami tidak semua digagalkan oleh ketidakmampuan Anda.


3

Saya menggunakan Xcode Versi 7.3 (7D175)

Saya pikir saya mungkin telah menemukan masalah yang mendasarinya. Ada dua contoh di mana saya terjebak dalam fase pengindeksan:

  • Saya membuat penutupan yang saya tetapkan ke variabel dan menghilangkan tanda tangan tipe. Saya pikir xcode memiliki masalah dengan langkah inferensi jenis itu. Jika saya ingat dengan benar salah satu argumen adalah CGPoint, yang memiliki konstruktor kelebihan beban. Hipotesis saya adalah bahwa ada terlalu banyak kemungkinan dari apa yang mungkin diterima oleh penutupan saya sebagai argumen.

  • Saya memfaktorkan ulang metode pabrik sehingga alih-alih mengembalikan contoh satu jenis, itu bisa mengembalikan banyak jenis dengan kelas dasar umum. Tampaknya di mana pun saya menggunakan metode pabrik, saya harus mentransmisikan objek yang dihasilkan ke tipe tertentu (baik dengan as? Atau dengan menugaskannya ke variabel yang menerima tipe tertentu) Sekali lagi langkah inferensi tipe tampaknya rusak.

Sepertinya hal yang sama terjadi dengan deklarasi kamus yang disebutkan oleh individu sebelumnya. Saya mengajukan laporan bug dengan apel.


2

Saya mengalami masalah yang sama setelah meningkatkan ke 6.1. Xcode akan terjebak dalam kompilasi atau pengindeksan tanpa menghasilkan pesan kesalahan tertentu.

Masalah ini akhirnya diselesaikan dengan memecah beberapa ekspresi yang lebih panjang dalam file swift menjadi beberapa ekspresi yang lebih pendek. Bagian dari program saya menggabungkan banyak variabel string yang berbeda untuk membentuk string yang lebih panjang. Upaya untuk menggabungkan keduanya dalam satu ekspresi dan menggunakan operator penetapan penambahan keduanya gagal. Saya bisa membuatnya bekerja dengan melakukan sesuatu yang mirip dengan yang berikut (disederhanakan):

var a = "Hello"
var b = " "
var c = "World"
var d = "!"
var partA = a + b
var partB = c + d
var result = partA + partB

Saya mendapat ide ini dari menerima kesalahan berikut berkali-kali dalam versi Xcode sebelumnya "Ekspresi terlalu rumit untuk diselesaikan dalam waktu yang wajar; pertimbangkan untuk memecah ekspresi menjadi sub-ekspresi yang berbeda."

Semoga ini membantu


Ya terima kasih, saya benar-benar menerima saran semacam ini. Dan saya juga memperkecil panjang salah satu file saya dari 1500 baris menjadi sekitar 1200. Dan tentu saja saya membuat proyek baru dan mengimpor semua file satu per satu ke dalamnya. Lalu akhirnya kembali menyala. Tidak begitu yakin mana yang merupakan penyelamat utama.
leonard

Memisahkan ekspresi panjang di Swift berhasil bagi saya.
MandisaW

2

Saya telah berjuang dengan masalah yang sama. Saya sudah mencoba dua solusi yang disebutkan (menghapus data turunan dan menghapus .xcworkspace) tetapi tidak berhasil. Saya juga mencoba perlahan mengomentari sebagian besar kode sedikit demi sedikit dan menghapus file hingga hampir tidak ada yang tersisa dan pengindeksan masih macet.

Saya menemukan solusi yang berhasil untuk saya, saya telah membuka proyek dengan Xcode Versi 6.1 (6A1030) yang lebih lama yang tidak memiliki masalah pengindeksan kemudian kembali ke Xcode Versi 6.1 (6A1052d) terbaru yang saya gunakan sebelumnya dan pengindeksan dilakukan diperbaiki dan terus bekerja dengan baik.

Kesimpulan saya adalah bahwa ini adalah bug dengan Xcode Versi 6.1 (6A1052d) yang saya harap akan meningkat dengan rilis mendatang.

Masalahnya muncul kembali sesekali, perbaikan yang sama selalu bekerja. Saya kira solusi lain adalah dengan tetap menggunakan Xcode Versi 6.1 (6A1030) yang lebih lama tetapi tidak akan berfungsi dengan perangkat yang menjalankan iOS 8.1 dan tidak akan ada perbaikan bug terbaru.


Saya telah mencoba sebagian besar saran untuk memecahkan masalah pengindeksan terus-menerus dan ini adalah satu-satunya yang berhasil untuk saya. Saya tidak memiliki Xcode 6 yang lebih lama tetapi saya memiliki Xcode 5. Itu tidak dapat dibangun, tetapi ia mengindeks dan setelah itu Xcode 6.1 berhasil diindeks.
SarahR

Saya lupa menyebutkan bahwa ini hanya solusi sementara dan saya harus melakukannya lagi beberapa jam kemudian.
SarahR

2

Saya telah mencoba ini dengan Xcode 8.3.3. Ini hasil saya:

Anda dapat menulis kode Swift yang sangat bagus yang akan menyebabkan pengindeksan macet.

Setelah pengindeksan hang, itu hang. Mengubah kode Swift kembali ke sesuatu yang tidak akan menyebabkan pengindeksan hang tidak membantu, itu masih macet.

Menutup proyek dan membuka kembali tidak membantu dalam situasi itu.

Keluar dari Xcode dan memulai ulang itu membantu. Pengindeksan tidak akan hang lagi (yaitu jika Anda mengubah kode kembali menjadi sesuatu yang tidak membuatnya hang).

Memulai ulang Mac Anda juga membantu, meskipun tidak diperlukan.

Gantung ini disebabkan oleh kode Swift yang sangat bagus. Contoh yang saya lihat

if let date = function1()
?? function2()
?? function3()
?? function4()
?? function5()
?? function6()
?? function7()
?? function8()
?? function9()
?? function10() {
    return date
}

Pengindeksan akan hang. Saya mengomentari sebagian besar "??" baris dan itu baik-baik saja (setelah berhenti dan meluncurkan kembali Xcode). Hapus komentar satu demi satu. Dengan beberapa baris tidak apa-apa, kemudian menghapus komentar pada baris berikutnya akan membuatnya menggantung.

Satu-satunya hal yang tampaknya membantu adalah mengubah kode Anda.


2

Di Xcode saya, solusinya adalah menutup semua jendela yang berlebihan. Untuk beberapa alasan banyak jendela yang terbuka membuat Xcode menjadi sangat lambat.


bagi saya ini adalah solusinya juga, mengejutkan karena bekerja dengan baik untuk waktu yang lama sebelumnya dengan jumlah jendela terbuka yang sama
Christian

1

Akhirnya, saya "memecahkan" masalah tersebut, meskipun itu hanya solusi.

Saya membuat proyek lain dan menambahkan file satu per satu ke dalamnya. Lalu saya melihat file viewcontroller.swift "sangat panjang". Kemudian saya memecah kodenya menjadi modul dan membuat kode yang digunakan berulang kali itu menjadi fungsi di file swift lainnya. Dan juga, saya menerima saran secara online bahwa ekspresi panjang harus dipecah menjadi lebih pendek. Kemudian, pengindeksan bekerja dan kompilasi bekerja.

Jadi untuk saat ini, saya sudah "menyelesaikannya".

TAPI, menurut saya ini tidak benar. Xcode IDE seharusnya lebih dari mampu menangani file cepat "sangat panjang" saya, hanya 1.500 baris. Saya yakin ini pasti bug (sudah ada sejak lama), meskipun Xcode 6.1 sudah ditingkatkan dari Xcode 6.0.1.


1

Bagi saya, saya menghapus aplikasi Xcode dan mengunduhnya lagi dan menginstalnya. Itu menyelesaikan masalah, setidaknya selesai sekarang.


1

Pengindeksan Xcode biasanya untuk kode Anda untuk saran dan penyelesaian otomatis antara lain seperti membantu Anda di papan cerita dan sebaliknya. Tetapi untuk mempercepat proyek xcode Anda, Anda dapat mematikan / menyalakannya melalui terminal

Matikan
default pengindeksan tulis com.apple.dt.XCode IDEIndexDisable 1 Hidupkan default pengindeksan tulis com.apple.dt.XCode IDEIndexDisable 0

Tapi pendekatan yang lebih baik untuk menggunakan mac cepat dengan RAM yang bagus.


2
Mematikan pengindeksan sangat melumpuhkan Xcode dan tidak boleh dilakukan. Memberi tahu seseorang untuk membeli Mac baru seharusnya tidak menjadi jawaban, laptop berusia 2 tahun seharusnya dapat menangani Xcode terbaru.
Knight0fDragon

macOS 10.13 Beta 7 memperkenalkan sesuatu yang membuat Xcode 9 Beta 6 dan Xcode 8 lumpuh segera setelah pengindeks berjalan. Mematikannya adalah satu-satunya cara untuk terus menggunakan Xcode, bahkan dengan versi yang lumpuh.
Pegolon

0

Jika Anda tidak keberatan kembali ke 6.0.1 sampai mereka mengetahuinya, itulah yang berhasil bagi saya. Saya mengalami masalah yang sama dengan 6.1 dan 6.1.1. Sekarang saya baik-baik saja. Saya akan mencoba 6.2 jika sudah keluar.

Anda dapat menemukan perangkat lunak apple versi sebelumnya di situs dev resmi mereka, di sini: https://developer.apple.com/downloads/index.action

Jika Anda melakukan ini, pastikan untuk menghapus salinan Xcode Anda saat ini terlebih dahulu.


0

Saya menggunakan Xcode 6.1.1 dengan file swift di MacBook Pro yang sama persis.

Saat saya terus menambahkan baris ke dalam array string 3D, Xcode tiba-tiba menjadi tidak dapat digunakan dan sekarang saya tidak dapat melakukan apa pun.

Akan mencoba kembali ke 6.1 dan semoga masalahnya akan hilang.


Saya memiliki masalah yang sama. Setelah menambahkan array kamus xcode menjadi tidak dapat digunakan ... Apakah Anda menemukan solusi?
Almazini

Saya kembali ke Xcode 6.1 yang bekerja lebih baik. Itu tidak macet di pengindeksan selamanya, tetapi kadang-kadang saya akan mengetik dan mendapatkan bola pantai selama 4 detik. Secara keseluruhan saya dapat membuat kode yang cukup untuk menyelesaikan pekerjaan. Saya tidak mengubah kode saya. Meskipun pada Xcode 6.1 baterai macbook pro tampaknya tidak terlalu terpengaruh, tetapi di macbook air saya pertengahan 2013 menjalankan 6.1.1, masa pakai baterai benar-benar ditembak. Ini berlangsung dari ~ 12 jam hingga 2 jam tersisa setelah saya memulai Xcode.
gardner888

0

Saya melihat ini di Xcode 6.3.2. Saya benar-benar berharap bahwa setahun setelah rilis, mereka akan memiliki kompiler yang berfungsi, tetapi sayangnya.

Jika tidak ada solusi di atas yang berhasil, coba periksa kode Anda untuk menemukan kesalahan sintaksis. Dalam proses pemfaktoran ulang, saya mengekstrak penutupan tetapi lupa untuk memenuhi syarat parameter:

    let hangsInsteadOfError = { l, r in
        return l.nameFirst < r.nameFirst
        || l.nameFirst == r.nameFirst && l.nameLast < r.nameLast }

    let fixingErrorAvoidsHang = { (l:User, r:User) -> Bool in
        return l.nameFirst < r.nameFirst
            || l.nameFirst == r.nameFirst && l.nameLast < r.nameLast }

Jika saya telah belajar sesuatu dari bekerja di Swift, itu adalah bekerja secara bertahap, untuk menghindari terlalu banyak mundur untuk menemukan kode yang menyinggung.


0
  1. Apakah status pengindeksan Anda adalah "Lingkaran indikator" atau "Bilah kemajuan"?
  2. Jika itu adalah "Lingkaran indikator", itu berarti sudah macet di awal.
  3. Buka dan periksa dengan proyek Anda yang lain, jika semuanya sama, itu berarti itu masalah sistem.
  4. Cukup restart komputer Anda dan semuanya akan baik-baik saja.

0

Saya menggunakan Xcode 8.2 dan juga berakhir dengan masalah ini. Ini dimulai setelah saya mendefinisikan variabel tupel kompleks - array tupel dengan subarray tupel. Segala sesuatunya menjadi sangat lambat ketika subarray tupel memiliki properti yang dihitung secara terprogram.

Seperti yang dicatat beberapa jawaban lain, pengindeksan membutuhkan waktu lama, dan saya yakin ini mencoba menyimpulkan jenis variabel.

Saya memecahkan masalah pertama dengan mendefinisikan variabel secara jelas dengan tipe yang disertakan. Saat memperbarui properti, saya menghitungnya terlebih dahulu kemudian menetapkannya ke tupel, alih-alih menghitung dalam mendefinisikan variabel.

Berikut adalah contoh kode.

var sectionTuples: [(section: String, rows: [(name: String, subtitle: String)])] = []
let subtitle1: String = "" // something calculated dynamically
let subtitle2: String = "" // something calculated dynamically
sectionTuples = [(
section: "Section 1", rows: [
(name: "name1", subtitle: subtitle1),
(name: "name2", subtitle: subtitle2)
])]

Intinya adalah jangan biarkan Xcode menyimpulkan struktur kompleks.


0

Saya mengalami masalah yang sama. Xcode saya adalah 8.2.1. Namun dalam kasus saya, saya ingin membuat array kamus dengan 33 pasangan nilai kunci. Saya melakukan dengan cara berikut yang terjebak dalam pengindeksan:

var parameter = [String : AnyObject]()
var finalArray = [parameter]

for item in listArray
{
    parameter = ["A": item.a as AnyObject, "B": item.b as AnyObject, "C": item.c as AnyObject, ... , "Z": item.z as AnyObject]

    finalArray.append(parameter)
}

Berikut ini berhasil untuk saya:

var parameter = [String: AnyObject]()
var finalArray = [parameter]

for item in listArray
{
    parameter["A"] = listArray.a as AnyObject
    parameter["B"] = listArray.b as AnyObject
    parameter["C"] = listArray.c as AnyObject
    parameter["D"] = listArray.d as AnyObject 
    .
    .
    .
    parameter["Z"] = listArray.z as AnyObject 
    finalArray.append(parameter)
}

0

Saya telah mengalami masalah ini juga dan mengatasinya dengan menghapus / mengubah ekspresi dengan operator "+".

Saya mengubah ini:

var mainArray = arrayOne + arrayTwo + arrayThree + arrayFour + arrayFive

Untuk ini:

var mainArray = arrayOne
mainArray += arrayTwo
mainArray += arrayThree
mainArray += arrayFour
mainArray += arrayFive

Itu memecahkan masalah.

Mesin saya adalah MBP maksimal akhir 2013


Persis pengalaman saya. Itu hang dengan kode Swift yang sangat bagus, dan satu-satunya cara untuk memperbaikinya adalah dengan mengubah kodenya.
gnasher729

0

Anda mungkin ingin memperbarui ke Xcode 6.1.1

Ini telah dirilis secara resmi dan menyelesaikan masalah pengindeksan bagi kami. Dalam deskripsi pembaruan, dikatakan bahwa mereka telah menerapkan perbaikan stabilitas sehingga sangat mungkin itu akan berperilaku dengan cara yang lebih stabil.


7
Menarik. Bagi saya, 6.1.1 memperkenalkan masalah pengindeksan tanpa akhir, dengan proyek yang dibuka dengan baik di 6.1. tanda
Pascal Bourque

Saya melihat. Dalam kasus kami, kami juga menyederhanakan ekspresi dan mengurangi ukuran kelas menggunakan kelas ekstensi. Yang cukup menggelikan bahwa kami harus melakukannya tetapi itulah yang harus kami lakukan. Dan sepertinya sedang melakukan trik untuk saat ini. Juga dengan mengomentari baris, kami mempersempit bagian mana dari kode yang sebenarnya "terlalu kompleks" sesuai dengan apa yang dipikirkan oleh Swift compiler dan mengurangi kerumitan sebanyak mungkin. Berharap mereka akan segera memperbaikinya karena cukup mengganggu.
Angel Naydenov

0

Xcode 6.2 beta menyelesaikan masalah untuk saya. Tidak secepat kilat, tapi setidaknya itu tidak mengindeks selamanya. Beta tidak menginstal di atas instalasi Xcode biasa Anda, jadi jika Anda tidak menyukai versi beta, Anda dapat menghapusnya.

Berbagai unduhan Xcode termasuk beta>


0

Saya memiliki ekspresi seperti:

let x = (value as? Int) ?? someDefault

juga

guard let x = (dateFormatter().string(from: Date()) + msg + "\n").addingPercentEncoding(...) else { ... }

Jadi intinya adalah menulis ulang file Anda agar hanya berisi ekspresi tingkat taman kanak-kanak dan masalah pengindeksan akan hilang.


0

Xcode 11.5 (11E608c) dan masih masalah yang sama, 6 tahun setelah pertanyaan awal. Saya berharap saya bisa "menandai" apel dalam pertanyaan ini sehingga mereka bisa melihat kekacauan ini. Ini adalah proyek besar (> 1000 file) dan saya berada di bawah jam jadi ketika saya melihat indeks pembekuan saya dengan lebih dari 100 file berubah dan tidak bisa kembali.

Saya sudah mencoba segalanya:

  1. menghapus data Berasal dan membangun
  2. Mulai ulang xcode, mulai ulang mac
  3. hapus dan tambahkan sumber
  4. Mencari kamus literal dll

Masalahnya adalah pembuatan array:

private var overlayColors: [UIColor] = [UIColor(hex: "#b71c1c"), UIColor(hex: "#4a148c"),
                                        UIColor(hex: "#880e4f"), UIColor(hex: "#1de9b6"),
                                        UIColor(hex: "#f50057"), UIColor(hex: "#311b92"),
                                        UIColor(hex: "#f44336"), UIColor(hex: "#651fff"),
                                        UIColor(hex: "#d500f9"), UIColor(hex: "#3d5afe"),
                                        UIColor(hex: "#bf360c"), UIColor(hex: "#0d47a1"),
                                        UIColor(hex: "#006064"), UIColor(hex: "#2979ff"),
                                        UIColor(hex: "#ff6f00"), UIColor(hex: "#1a237e"),
                                        UIColor(hex: "#795548"), UIColor(hex: "#004d40"),
                                        UIColor(hex: "#00e676"), UIColor(hex: "#01579b"),
                                        UIColor(hex: "#33691e"), UIColor(hex: "#827717"),
                                        UIColor(hex: "#76ff03"), UIColor(hex: "#ffc400"),
                                        UIColor(hex: "#e65100"), UIColor(hex: "#00b0ff"),
                                        UIColor(hex: "#ff3d00"), UIColor(hex: "#616161"),
                                        UIColor(hex: "#263238"), UIColor(hex: "#ff1744")]

Apa yang membantu saya menemukan file swift yang buruk adalah ketika xcode membekukan pengindeksan saya melakukan langkah-langkah berikut

  1. buka monitor aktivitas -> proses "swift" -> tampilkan info proses -> buka File dan Port. Ini akan memberi Anda daftar file apa yang sedang dijalankan proses ini menelusuri daftar kemungkinan file buruk Anda
  2. Alat praktis lainnya adalah skrip SOURCEKIT_LOGGING=3 /Applications/Xcode.app/Contents/MacOS/Xcode &> ~/Documents/xcode.logini yang akan memulai Xcode dengan tingkat 3 verbose dan mulai masuk ke file log.
  3. Cari di file log entri terakhir untuk file swift Anda misalnya: "my_project / Source / App /"

Ini bukan solusi lengkap tetapi sangat membantu untuk menelusuri dan mengetahui ke mana mencarinya.

buka monitor aktivitas -> proses "swift" -> tampilkan info proses -> buka File dan Port.

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.