SourceKitService Menggunakan CPU dan Grinds Xcode untuk Berhenti

109

Ini BUKAN masalah Beta. Saya menggunakan Xcode 6.0.1, rilis produksi. Masalah yang saya alami adalah ketika saya mencoba melakukan Build atau Jalankan kode yang saya kerjakan, Xcode menjadi tidak responsif untuk jangka waktu yang lama dan SourceKitService mengkonsumsi hingga 400% dari CPU (menurut Activity Monitor). Masalah ini baru pada beberapa hari terakhir, meskipun, anehnya, saya telah menggunakan Xcode 6.0 sejak dirilis secara resmi pada 17 September. Saya meningkatkan ke 6.0.1 berharap ini akan berisi perbaikan untuk masalah ini.

Ada gagasan tentang apa masalahnya?

zeeple
sumber
Sudahkah Anda memeriksa konsumsi memori? Saya belum pernah mengalami masalah ini untuk sementara waktu, tetapi itu benar-benar buruk di beta di mana itu akan menghabiskan semua RAM dan kemudian HCF. Ini umumnya karena garis aritmatika yang lebih panjang, terutama dengan subskrip. Anda harus membagi dan menaklukkan untuk menemukan kode yang melanggar (tapi legal). Ketika Anda menemukan garis tersebut, coba untuk mereproduksi di Playground, dan kirimkan laporan bug.
Chris Conover
Juga lihat posting yang diakui bertanggal ini: stackoverflow.com/questions/24873219/… dan stackoverflow.com/questions/24873219/…
Chris Conover
Masih ada beberapa bug yang diketahui seperti yang dapat Anda baca di beberapa utas di forum pengembang Apple. Xcode 6.1 Beta 3 menyelesaikan konsumsi CPU yang tinggi tetapi memperkenalkan yang berbeda. Sangat mengecewakan.
Klaas
1
Saya mengalami masalah serupa. Saya punya masalah di Xcode 7 dan sekarang di 8. Satu- satunya hal yang berubah adalah kode yang masuk ke Xcode Anda. Dugaan saya adalah bahwa pengindeksan ulang atau kode baru adalah akar penyebab. Apakah ini biasanya terjadi saat Anda menarik kode dari hulu?
Madu

Jawaban:

151

Mengalami masalah ini dengan Xcode 6.1.1 sebelumnya sore ini (bukan beta, versi rilis resmi). Saya telah menjalankan beberapa kode di Playground dan mencurigai itu menjadi penyebabnya. CPU dipatok hingga hampir 100%, dan Xcode tidak dapat menyelesaikan pembuatan.

Jadi inilah yang saya lakukan:

1. Buka "Activity Monitor", yang menunjukkan SourceKitService sebagai CPU utama.

2. Di dalam "Activity Monitor", klik dua kali pada SourceKitService dan klik bagian "Open Files and Ports", yang menunjukkan bahwa ia sedang bekerja pada file di bawah direktori / Users / myname / Library / Developer / Xcode / DerivedData / ModuleCache / untuk folder tertentu.

3. Menghapus folder tertentu (dari baris perintah, menggunakan rm -rf). Cache dibuat ulang berdasarkan Dapatkah saya menghapus konten folder data Xcode Derived dengan aman? .

4. Menggunakan Monitor Aktivitas lagi, Tutup Paksa SourceKitServer. Melihat tanda yang sekarang-terlalu-terlalu-familiar dalam Xcode yang mengatakan bahwa SourceKitService telah rusak (jadi itulah mengapa SourceKitService terdengar familiar!).

5. Langkah berulang 3.

Mac kembali damai. Tidak ada data yang hilang dan Xcode bahkan tidak perlu di-restart (yang saya coba tidak berhasil). Intinya adalah ModuleCache tampaknya mendapatkan SourceKitService dalam satu lingkaran dan menghapus folder tampaknya memperbaikinya. Semoga ini berhasil juga untuk Anda.

Catatan Boot:

Ngomong-ngomong, penyebab masalah SourceKitService adalah karena saya memiliki deklarasi array yang terlalu panjang di kelas Swift saya. Saya memiliki lebih dari 200 entri dalam satu larik. Kurangi menjadi 30 dan kesalahannya hilang. Jadi masalah mungkin muncul karena beberapa jenis stack overflow dalam kode apple (pun intended).

LNI
sumber
Terima kasih atas jawaban anda. Anda harus mengedit jawaban Anda daripada mengomentari sendiri.
Axalo
3
Saya memiliki masalah serupa dengan deklarasi larik panjang di Swift yang mengandalkan jenis inferensi selama inisialisasi. Saya menemukan bahwa dengan secara eksplisit menjelaskan jenisnya menyelesaikan masalah.
jay492355
2
Permasalahan yang sama. array besar dengan kamus. Saya hanya memasukkan semua data ke dalam file .PLIST dan membacanya.
Bruno Paulino
64
Apakah itu mengganggu orang lain bahwa pada tahun 2016 kami tidak dapat menangani array 200 elemen? Saya menggunakan array yang lebih panjang di BASIC pada Atari 600 di tahun 80-an.
Eddie Sullivan
2
Saya memiliki masalah yang sama sekarang dan, seperti yang disebutkan @ jay492355, Anda perlu mengetikkan larik Anda secara eksplisit.
Guy Kogus
24

Saya melihat masalah karena saya mendeklarasikan array dengan sekitar 60 elemen yang terlihat seperti ini:

let byteMap = [

["ECG" : (0,12)],
["PPG" : (12,3)],
["ECG" : (15,12)],
["PPG" : (27,3)],
["ECG" : (30,12)]

Dengan secara eksplisit menjelaskan tipe seperti ini:

let byteMap : [String: (Int, Int)] = [

["ECG" : (0,12)],
["PPG" : (12,3)],
["ECG" : (15,12)],
["PPG" : (27,3)],
["ECG" : (30,12)],

Saya bisa menghentikannya. Saya pikir itu pasti ada hubungannya dengan tipe-inferensi dan pemeriksaan tipe Swift yang membuatnya menjadi loop ketika menemukan array gondrong.

Ini ada di Xcode 6.2. Saya juga menghapus ModuleCache seperti dijelaskan di atas dan sekarang semuanya baik-baik saja.

jay492355
sumber
2
Ya, masalah ini terkenal spin.atomicobject.com/2016/04/26/swift-long-compile-time
onmyway133
1
Masalah serupa bagi saya di Xcode 8.1. Saya memiliki array objek NSConstraintLayout. Bekerja dengan baik dengan 4. Bekerja dengan baik dengan 6. Tidak begitu baik dengan 7 dan tidak bekerja sama sekali dengan 8. Saya membuat dua array dengan masing-masing 4 objek dan berfungsi dengan baik.
Dan Loughney
@ onmyway133 Saya bertanya-tanya mengapa hal itu tidak terjadi setiap saat dan itu hanya terjadi sesekali
Sayang
Apakah menurut Anda jika Anda memiliki sesuatu seperti return ["a", "b", "c", "d", "e", "f"]dalam fungsi yang mengembalikan [String]itu masih akan mengalami masalah dengan tipe-inferensi?
shim
10

Masalah ini terjadi seperti 10 kali, 8 kali terjadi ketika saya menghubungkan perangkat yang sebenarnya dan tidak menjalankan simulator.

Saya tidak begitu yakin apakah solusi saya bagus, tetapi bagi saya, saya yakin masalahnya adalah karena beralih antara simulator dan perangkat yang sebenarnya. Ini mungkin terdengar aneh tetapi seolah-olah itu menciptakan gangguan antara file cache .

Apa yang memecahkan masalah saya:

  • Bersihkan Build Folder: (di Xcode)Alt + Shift + Command + K
  • Atur Ulang Konten dan Pengaturan: (di Simulator)Command + Shift + K .
  • Menunggu sedikit lebih lama dari biasanya dan membebani Xcode dengan klik konstan

Jadi pada dasarnya sebelum Anda mencoba menjalankan perangkat baru, hapus saja cache apa saja.

EDIT

Saya baru saja mengalami masalah tanpa koneksi perangkat apa pun. Saya baru saja keluar dari Xcode dan membukanya lagi dan masalahnya hilang. Tidak yakin tebakan saya adalah mungkin ada masalah pengindeksan ulang setelah Anda mengambil / menarik kode baru gabungan.

Madu
sumber
Aku sangat berharap ini berhasil karena aku putus asa. Sayangnya, itu mulai lepas kendali lagi beberapa saat setelah saya mulai membuat kode.
Mr T
Saya tidak yakin tetapi terkadang hanya berpindah cabang, menarik dari hulu telah menyelesaikan masalah saya. Maksud saya adalah saya tidak melakukan apa yang disarankan oleh jawaban yang diterima, namun masalah saya terpecahkan entah bagaimana saya belum memecahkannya: /
Madu
4

Saya menyelesaikan masalah lain yang menyebabkan SourceKitService menggunakan hingga 13GB memori ...

Saya memiliki String (format baris dengan banyak argumen:

return String(format: "%d,%.3f,%.3f,%.3f,%.3f,%.3f,%.3f,%.3f,%.3f,%.3f,%.3f,%.3f,%.3f,%.3f,%.3f,%.3f,%.3f,%.3f,%.3f", samples.count,sum1.x,sum1.y,sum1.z,sum1.rx,sum1.ry,sum1.rz,sum2.x,sum2.y,sum2.z,sum2.rx,sum2.ry,sum2.rz,sum3.x,sum3.y,sum3.z,sum3.rx,sum3.ry,sum3.rz)

ketika diganti dengan ini itu berfungsi dengan baik (tidak ada memori yang dibangun dan konsumsi CPU normal)

    var output: String = ""

    output += String(format: "%d,", samples.count)
    output += String(format: "%.3f,%.3f,%.3f,", sum1.x, sum1.y, sum1.z)
    output += String(format: "%.3f,%.3f,%.3f,", sum1.rx, sum1.ry, sum1.rz)
    output += String(format: "%.3f,%.3f,%.3f,", sum2.x, sum2.y, sum2.z)
    output += String(format: "%.3f,%.3f,%.3f,", sum2.rx, sum2.ry, sum2.rz)
    output += String(format: "%.3f,%.3f,%.3f,", sum3.x, sum3.y, sum3.z)
    output += String(format: "%.3f,%.3f,%.3f", sum3.rx, sum3.ry, sum3.rz)

    return output
Matej Ukmar
sumber
4
Bagaimana Anda mengetahui bahwa bagian kode ini adalah masalahnya?
KK
3

Saya telah mengalami masalah ini dengan Xcode 9 , dan menjelajahi beberapa solusi. Bagi saya, menonaktifkan Kontrol Sumber sepertinya berhasil.

Xcode -> Preferences -> Source Control -> uncheck "Enable Source Control"

Jika ini tidak berhasil, saya akan merekomendasikan menggunakan perintah renice di terminal . Lebih lanjut tentang itu di sini

menonaktifkan Kontrol Sumber

Langkah-langkah lain yang saya coba, tetapi tidak membantu:

  1. Tutup Xcode -> Hapus Data Berasal
  2. mesin bersepeda
  3. proyek "bersih"
mhit0
sumber
2

Bagi saya itu berhasil menghapus Data Berasal. Pilih 'Produk' dari menu dan tahan tombol Alt dan pilih 'Bersihkan Folder Bangun'. Tombol pintas: Alt + Shift + Command + K.

Roland Keesom
sumber
2
  1. Keluar dari Xcode
  2. Jalankan di Terminal:

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


Perhatikan perbedaan antara jawaban yang diterima LNI dan yang ini:

  1. Itu selalu lebih baik untuk tidak menabrak daripada menabrak. Terutama, ketika menyangkut proses / komponen Xcode.
  2. Saya bukan pengembang Apple, tetapi menghapus sebagian cache dapat merusak integritasnya. Saya tidak melihat adanya penundaan yang signifikan setelah membersihkan semua cache.
Dmitry Isaev
sumber
2

Saya menghabiskan 4 jam untuk mencari tahu masalah dalam kompilasi panjang proyek saya. Percobaan pertama membutuhkan waktu 42 menit untuk dikompilasi.

Saya menghapus semua cache dari /Users/myname/Library/Developer/Xcode/DerivedData/ModuleCache/seperti yang disarankan oleh @LNI, setelah restart SourceKitServicedan menerapkan beberapa perubahan untuk kode:

1) Kepada

    var initDictionary:[String:AnyObject] = [
                    "details" : "",
                    "duration" : serviceDuration,
                    "name" : serviceName,
                    "price" : servicePrice,
                    "typeId" : typeID,
                    "typeName" : typeName,
                    "url" : "",
                    "serviceId" : serviceID,
                    "imageName" : ""
                ]

Dari

    var initDictionary= [
                    "details" : "",
                    "duration" : serviceDuration,
                    "name" : serviceName,
                    "price" : servicePrice,
                    "typeId" : typeID,
                    "typeName" : typeName,
                    "url" : "",
                    "serviceId" : serviceID,
                    "imageName: "" ]

2) Kepada

            if let elem = obj.property,
                let elem2 = obj.prop2,
                etc
                 {
                 // do stuf here
            }

Dari

           let value1 = obj.property ?? defaultValue

3)

Untuk

           let serviceImages = images.filter { $0.serviceId == service.id }
           let sorted = serviceImages.sort { $0.sort > $1.sort }

Dari

            let serviceImages = images.filter { $0.serviceId == service.id }. sort { $0.sort > $1.sort }

Hasilnya waktu kompilasi - 3 menit, tidak begitu cepat tetapi lebih baik selama 42 menit.

Akibatnya, sebelum SourceKitService- ambil memori ~ 5,2 Gb dan setelah ~ 0,37 Gb

masukkan deskripsi gambar di sini

gbk
sumber
2

Saya memiliki masalah yang sama dengan SourceKitService.

Saya memecahkan. JANGAN PERNAH TAMBAHKAN SUBVIEW DENGAN FOR LOOP.

Untuk mendeteksi masalah yang saya gunakan: https://github.com/RobertGummesson/BuildTimeAnalyzer-for-Xcode

Zhanserik
sumber
bagaimana kamu menyelesaikannya? Saya menambahkan subview saya dengan for loop dan sekarang membersihkan cache tidak memperbaiki @Zhanserik
10donovanr
1
@ 10donovanr JANGAN PERNAH TAMBAHKAN SUBVIEW UNTUK LOOP. Setelah itu coba bersihkan cache aplikasi dengan CMD + SHITF + K
Zhanserik
2

Jangan membuat kamus dengan cepat tanpa menentukan tipe data atau dengan [String: Any]

Jika kita menggunakan tipe 'Any', kompilator mungkin mengalami loop tak terbatas untuk memeriksa tipe data.

Itu tidak akan membuat kesalahan kompilasi, itu akan membuat mac kita berhenti di 'kompilasi file sumber cepat' dengan memperoleh banyak memori untuk tugas-tugas bernama 'swift' & 'SourceKitService'.

ak_ninan
sumber
2

Saya telah menghadapi masalah seperti itu. Layanan kit sumber menggunakan 10 gb penggunaan. Proses cepat dalam monitor aktivitas mencapai penggunaan lebih dari 6 GB. Saya menggunakan kode berikut:

detail var: [String: Any] = ["1": 1, "2": 2, "3": 3, "4": 4, "5": 5, "6": 6, "7": 7, "8": 8, "9": 9, "10": 10, "11": 11, "12": 12, "13": 13, "14": 14, "15": 15, "16": 16]

Saya telah mengubah kode menjadi berikut untuk mengatasi masalah ini:

detail var: [String: Any] = [:]

detail ["1"] = 1

detail ["2"] = 2

detail ["3"] = 3

detail ["4"] = 4

detail ["5"] = 5

detail ["6"] = 6

detail ["7"] = 7

detail ["8"] = 8

detail ["9"] = 9

detail ["10"] = 10

detail ["11"] = 11

detail ["12"] = 12

detail ["13"] = 13

detail ["14"] = 14

detail ["15"] = 15

detail ["16"] = 16

Jignesh Patel
sumber
Man .... siapa sangka .... Saya sebenarnya memiliki kode yang serupa dan memiliki SourceKitService menyedot kehidupan keluar dari CPU. Mengubah kode hanya membuatnya hilang.
AnBisw
2

Masalahnya masih terjadi di XCode 10.0. Anda dapat memperbaikinya dengan menonaktifkan "Tampilkan Perubahan Kontrol Sumber" di opsi Kontrol Sumber.

masukkan deskripsi gambar di sini

DennyDog
sumber
Keren, tetapi kurang dari yang diperlukan jika penggilingan Xcode-nya terhenti.
Shayne
1

Menghadapi masalah yang sama di Xcode 7.2 (7C68)

Solusinya adalah dengan menerapkan metode protokol, yang dimiliki kelas saya dalam definisi.

Dmitry Kurilo
sumber
1

Ini masih menjadi masalah di xcode Versi 7.3.1 (7D1014) penyebabnya bagi saya adalah, seperti yang ditunjukkan LNI, array yang terlalu panjang, sebenarnya tidak terlalu panjang. Saya memperbaiki masalah saya dengan memecah array menjadi berbagai array seperti ini:

let firstLevel = [
            [1, 0, 1, 0, 1],
            [0, 0, 0, 0, 0],
            [1, 0, 1, 0, 1],
            [0, 0, 0, 0, 0],
            [1, 0, 1, 0, 1],
            [0, 0, 0, 0, 0]
        ]
        let secondLevel = [
            [0, 0, 0, 0, 0],
            [0, 1, 0, 1, 0],
            [0, 0, 0, 0, 0],
            [0, 1, 0, 1, 0],
            [0, 0, 0, 0, 0],
            [0, 0, 0, 0, 0]
        ]
        let thirdLevel =     [
            [0, 0, 0, 0, 0],
            [0, 0, 0, 0, 0],
            [0, 0, 1, 0, 0],
            [0, 0, 0, 0, 0],
            [0, 0, 0, 0, 0],
            [0, 0, 0, 0, 0]
        ]
        let map = [firstLevel, secondLevel, thirdLevel]
Tharak
sumber
1

Saya memiliki masalah yang sama dengan XCode 8.2.1 (8C1002) dan kode berikut:

import UIKit
import AVFoundation
import Photos
import CoreMotion
import Foundation


class TestViewController: UIViewController
{
    let movieFileOutput = AVCaptureMovieFileOutput()


var anz_total_frames = 0, anz_total_miss = 0

@IBOutlet weak var tfStatistics: UITextView!


func showVideoStatistics()
{
    let statisticText:String =             "frames: \(self.anz_total_frames)" + String.newLine +

        "frames/s: \(self.anz_total_frames / self.movieFileOutput.recordedDuration.seconds)" + String.newLine +

        "miss: " + formatText4FramesPercent(self.anz_total_miss) + String.newLine +
    "nicht erkannt: " + formatText4FramesPercent(self.anz_total_miss) + String.newLine +
        "nicht erkannt: " + formatText4FramesPercent(self.anz_total_miss) + String.newLine +
        "nicht erkannt: " + formatText4FramesPercent(self.anz_total_miss) + String.newLine +
        "nicht erkannt: " + formatText4FramesPercent(self.anz_total_miss) + String.newLine +
        "nicht erkannt: " + formatText4FramesPercent(self.anz_total_miss) + String.newLine +
        "nicht erkannt: " + formatText4FramesPercent(self.anz_total_miss) + String.newLine +
        "nicht erkannt: " + formatText4FramesPercent(self.anz_total_miss) + String.newLine +
        "nicht erkannt: " + formatText4FramesPercent(self.anz_total_miss) + String.newLine +
        "nicht erkannt: " + formatText4FramesPercent(self.anz_total_miss) + String.newLine +
        "nicht erkannt: " + formatText4FramesPercent(self.anz_total_miss) + String.newLine


    self.tfStatistics.text = statisticText
}

func formatText4FramesPercent(_ anz:Int) -> String
    {
        let perc = Double(anz)*100.0/Double(anz_total_frames)
        return String(perc.format(".1") + "%")
    }
}

dan ekstensi ini:

extension String {
    var localized: String {
        return NSLocalizedString(self, tableName: nil, bundle: Bundle.main, value: "", comment: "")
    }

    static var newLine: String {
        return "\r\n"
    }
}

extension Int {
    func format(_ f: String) -> String {
        return String(format: "%\(f)d", self)
    }
}

extension Double {
    func format(_ f: String) -> String {
        return String(format: "%\(f)f", self)
    }
}

Saya menyelesaikannya dengan mengomentari baris ini di TestViewController:

        "frames/s: \(self.anz_total_frames / self.movieFileOutput.recordedDuration.seconds)" + String.newLine +

Butuh waktu lebih dari satu jam untuk menemukannya, saya harap bisa menghemat waktu orang lain. Saya mengajukan laporan bug ke Apple dengan nomor 30103533

Werner Kratochwil
sumber
1

Saya menghadapi masalah yang sama setelah memigrasi proyek ke swift 3, mencari tahu solusi yang memakan waktu karena kamus dan array dibuat tanpa tipe data.

Vijay Pal
sumber
1

Perilaku ini muncul dalam proyek saya ketika saya secara tidak sengaja menyatakan kelas yang diwarisi dari kelas itu sendiri. Xcode 8.2.1, menggunakan Swift 3.

zath
sumber
1

Saya juga mengalami masalah ini, dalam kasus saya, saya mendeklarasikan array besar seperti ini:

var myArray: [(String, Bool?)]?
myArray = [("someString", someBool),
("someString", someBool),
("someString", someBool),
("someString", someBool),
("someString", someBool)
.
.
("someString", someBool)]

Saya memecahkan masalah dengan menambahkan item 1 per baris alih-alih semuanya pada saat yang sama:

var myArray = [(String, Bool?)]()
myArray.append(("someString", someBool))
myArray.append(("someString", someBool))
myArray.append(("someString", someBool))
myArray.append(("someString", someBool))
myArray.append(("someString", someBool))
.
.
.

ini memperbaiki masalah.

Chuy47
sumber
1

Untuk proyek Objective-C:

Saya memiliki masalah yang sama, dan tidak ada kode Swift di proyek kami, jadi itu bukan pemeriksa inferensi tipe.

Saya mencoba setiap solusi lain di sini dan tidak ada yang berhasil - yang AKHIRNYA memperbaikinya untuk saya adalah me-reboot komputer dalam mode pemulihan dan menjalankan perbaikan disk. Saya akhirnya bisa bekerja dengan damai lagi!

Saya menduga itu terjadi karena beberapa symlink yang rusak, mungkin mengarah ke satu sama lain dan membuat layanan berjalan dalam putaran tanpa akhir.

Accatyyc
sumber
1

Saya mengalami masalah serupa dengan Xcode 8.2.1 - dengan lebih dari 1.000 baris kode dikomentari melalui / * * /. Mengomentari bagian tersebut menyebabkan masalah, dan menghapus kode yang diberi komentar telah memperbaikinya.

KGBlacksmith
sumber
1

Saya mengalami sesuatu yang mirip dengan menggabungkan beberapa ?? operator untuk memberikan nilai default string opsional.

Saya sedang bereksperimen dengan kode debug di bawah ini ketika kipas pada MacBook Pro pertengahan 2010 saya yang terpercaya mulai bekerja keras. SourceKitService menyedot setiap siklus CPU yang bisa didapatnya. Mengomentari dan menghapus komentar pada baris yang menyinggung membuatnya sangat jelas apa yang dicekik oleh SourceKitService. Sepertinya menggunakan lebih dari satu ?? operator untuk menyediakan default adalah masalah pada mesin lama. Pekerjaan sekitar hanya jangan lakukan itu. Bagi menjadi beberapa tugas yang membuat beberapa kode debug jelek menjadi lebih jelek.

placeMark adalah turunan dari CLPlacemark. Properti yang digunakan di sini mengembalikan string opsional.

Saya menggunakan Xcode Versi 8.3.2 (8E2002) yang berjalan di OS 10.12.4 (16E195)

// one term is not an issue
let debugString1 = (placeMark.locality ?? "")

// two terms pushes SourceKitService CPU use to 107% for about 60 seconds then settles to 0%
let debugString1 = (placeMark.locality ?? "")  + ", " +  (placeMark.administrativeArea ?? "") 

// three terms pushes SourceKitService CPU use to 187% indefinitely 
let debugString1 = (placeMark.locality ?? "")  + ", " +  (placeMark.administrativeArea ?? "")  + (placeMark.postalCode ?? "")

// ugly but it's safe to use
var debugString1 = placeMark.locality ?? ""
debugString1 = debugString1 + ", " +  (placeMark.administrativeArea ?? "")
debugString1 = debugString1 + " " + (placeMark.postalCode ?? "")
Positron
sumber
Saya yakin ini adalah masalah dengan penggabungan string dan bukan ??. Sebaiknya coba dengan "\() \()" (interpolasi string)
Brooks DuBois
1

Mengonversi Array panjang ke Fungsi tampaknya menyelesaikan masalah bagi saya:

var color: [UIColor] {
    return [
        UIColor(...),
        UIColor(...),
        ...
    ]
}

untuk:

func color() -> [UIColor] {
    return [
        UIColor(...),
        UIColor(...),
        ...
    ]
}
nefarianblack
sumber
1

dijalankan di terminal:

killall Xcode
rm -rf ~/Library/Developer/Xcode/DerivedData/ModuleCache
open /Applications/Xcode.app

Anda juga bisa membuat perintah terminal menggunakan alias ini:

echo alias xcodeFix='killall Xcode;rm -rf ~/Library/Developer/Xcode/DerivedData/ModuleCache;open /Applications/Xcode.app' >> ~/.profile
source ~/.profile

dan kemudian lari saja

xcodeFix
Dmitry Kozlov
sumber
0

https://www.logcg.com/en/archives/2209.html

SourceKitService mengambil alih pekerjaan inferensi tipe Swift.

private lazy var emojiFace = ["?", "?", "?", "?"]

ubah untuk mengetik secara eksplisit

private lazy var emojiFace:[String] = ["?", "?", "?", "?"]

Penggunaan CPU SourceKitService segera turun。

lbsweek
sumber
0

Terjadi pada saya di XCode 11.4.1 saat memanggil langganan @dynamicMemberLookup di dalam blok SwiftUI @ViewBuilder.

Objectif
sumber
0

Saya mengalami masalah yang sama dan itu disebabkan oleh kesalahan pemrograman.

Dalam kasus saya, saya menerapkan protokol yang sebanding dan dapat disamakan dan lhs.param dan rhs.param tidak sesuai dengan parameter kelas lhs dan rhs.

rockdaswift
sumber