SourceKitService सीपीयू का उपभोग करता है और Xcode को एक हाल्ट के लिए पीसता है


108

यह बीटा मुद्दा नहीं है। मैं Xcode 6.0.1 पर हूं, प्रोडक्शन रिलीज। मेरे पास जो समस्या है, वह यह है कि जब मैं जिस कोड पर काम कर रहा हूं, उसका निर्माण या रन करने की कोशिश करता हूं, तो Xcode बड़ी अवधि के लिए अनुत्तरदायी हो जाता है और SourceKitService 400% CPU (गतिविधि मॉनिटर के अनुसार) का उपभोग करता है। यह मुद्दा पिछले कुछ दिनों की तरह नया है, हालांकि, अजीब तरह से, मैं Xcode 6.0 पर था क्योंकि यह आधिकारिक तौर पर Sept 17 को जारी किया गया था। मैंने 6.0.1 में अपग्रेड किया है, यह उम्मीद करता है कि इसमें इस मुद्दे के लिए एक सुधार होगा।

किसी भी विचार के रूप में क्या समस्या हो सकती है?


क्या आपने मेमोरी खपत की जाँच की है? मेरे पास कुछ समय के लिए यह मुद्दा नहीं था, लेकिन यह वास्तव में बहुत बुरा था जिसमें यह सभी रैम और फिर एचसीएफ का उपभोग करेगा। यह आम तौर पर अंकगणित की लंबी लाइनों के कारण था, खासकर सदस्यता के साथ। आपको अपमानजनक (लेकिन कानूनी) कोड को खोजने और विभाजित करने की आवश्यकता होगी। जब आपको लाइन मिल जाए, तो कृपया खेल के मैदान में पुन: पेश करने का प्रयास करें, और एक बग रिपोर्ट सबमिट करें।
क्रिस कॉनवर

इन भर्ती पदों को भी देखें: stackoverflow.com/questions/24873219/… और stackoverflow.com/questions/24873219/…
क्रिस कॉनवर

अभी भी कुछ ज्ञात बग हैं जैसा कि आप ऐप्पल डेवलपर मंचों पर कई थ्रेड्स में पढ़ सकते हैं। Xcode 6.1 बीटा 3 उच्च सीपीयू खपत को हल करता है लेकिन अलग-अलग का परिचय देता है। बहुत निराशाजनक।
कालस

1
मैं एक समान मुद्दा रहा हूँ। मेरे पास Xcode 7 और अब 8 पर मुद्दा था। केवल एक चीज जो परिवर्तन है वह कोड है जो आपके Xcode में आता है। मेरा अनुमान है कि reindexing या नया कोड मूल कारण है। क्या यह आमतौर पर तब होता है जब आप अपने अपस्ट्रीम से कोड खींचते हैं?
हनी

जवाबों:


150

एक्सकोड 6.1.1 के साथ इस दोपहर में इस समस्या से पहले भाग गए (बीटा नहीं, आधिकारिक जारी किया गया संस्करण)। मैं खेल के मैदान पर कुछ कोड चला रहा था और संदेह कर रहा था कि इसका कारण हो। CPU को लगभग 100% आंका गया था, और Xcode बिल्ड्स को पूरा करने में असमर्थ था।

तो यहाँ मैंने क्या किया:

1. खोला गया "एक्टिविटी मॉनिटर", जिसने मुख्य सीपीयू हॉग के रूप में सोर्सकिट सर्विस को दिखाया।

2. "एक्टिविटी मॉनिटर" के भीतर, SourceKitService पर डबल-क्लिक किया और "ओपन फाइल्स एंड पोर्ट्स" सेक्शन पर क्लिक किया, जिससे पता चला कि यह / Users / myname / Library / Developer / Xcode / DerivedDea / ModuleCache / Directory के तहत फाइलों पर काम कर रहा है। एक विशिष्ट फ़ोल्डर के लिए।

3. निर्दिष्ट फ़ोल्डर को हटा दिया (कमांड-लाइन से, rm -rf का उपयोग करके)। कैश पुनर्निर्मित है क्या मैं Xcode व्युत्पन्न डेटा फ़ोल्डर की सामग्री को सुरक्षित रूप से हटा सकता हूं?

4. गतिविधि मॉनिटर का फिर से उपयोग करना, Force-Quit SourceKitServer। देखा कि Xcode के भीतर अब-सभी-परिचित संकेत कहते हैं कि SourceKitService दुर्घटनाग्रस्त हो गया था (इसलिए यही कारण है कि SourceKitService परिचित लग रहा था!)।

5. बार-बार चरण 3।

मैक फिर से शांतिपूर्ण है। कोई डेटा नहीं खो गया था और Xcode को भी पुनरारंभ नहीं किया गया था (जो मैंने असफल प्रयास किया था)। लब्बोलुआब यह है कि ModuleCache एक सोर्स में SourceKitService हो रहा है और फ़ोल्डर को हटाने के लिए इसे ठीक करने लगता है। आशा है कि यह आपके लिए भी काम करेगा।

Bootnote:

वैसे, SourceKitService मुद्दे का कारण यह था कि मेरे स्विफ्ट वर्ग में सरणी घोषणा की बहुत लंबी थी। मेरे पास एक सरणी में 200 से अधिक प्रविष्टियाँ थीं। इसे 30 तक घटा दिया और त्रुटि दूर हो गई। तो सेब कोड में कुछ प्रकार के ढेर अतिप्रवाह के कारण मुद्दा उत्पन्न हो सकता है (सजा का इरादा)।


आपके उत्तर के लिए धन्यवाद। हालांकि आपको स्वयं पर टिप्पणी करने के बजाय आपको उत्तर को संपादित करना चाहिए।
Axalo

3
स्विफ्ट में एक लंबी सरणी की घोषणा के साथ मुझे भी ऐसी ही समस्या थी जो इसके प्रारंभ के दौरान प्रकार के अनुमानों पर निर्भर थी। मैंने पाया कि स्पष्ट रूप से एनोटेट करके समस्या का समाधान किया गया।
jay492355

2
एक ही समस्या है। शब्दकोशों के साथ बड़ी सरणी। मैंने सिर्फ .PLIST फ़ाइल में सारा डेटा डाला और इसे पढ़ा।
ब्रूनो पॉलिनो

64
क्या यह किसी और को परेशान करता है कि 2016 में हम एक 200-तत्व सरणी को संभाल नहीं सकते हैं? मैं 80 के दशक में एक Atari 600 पर BASIC में लंबे समय तक सरणियों का उपयोग करता था।
एडी सुलिवन

2
मुझे अभी भी यही समस्या थी और जैसा कि @ jay492355 ने उल्लेख किया है, आपको अपना सरणी स्पष्ट रूप से लिखना होगा।
गाइ कॉगस

23

मैं समस्या देख रहा था क्योंकि मैं लगभग 60 तत्वों के साथ एक सरणी घोषित कर रहा था जो इस तरह दिखता था:

let byteMap = [

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

इस तरह से स्पष्ट रूप से एनोटेट करके:

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

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

मैं इसे रोकने में सक्षम था। मुझे लगता है कि स्विफ्ट के टाइप-इनफेरेंस और टाइप-चेकिंग के साथ इसका कुछ करना होगा, जो इसे लोंगिश में जाता है, जब यह एक लॉन्गिश एरे का सामना करता है।

यह Xcode 6.2 में था। मैंने ऊपर वर्णित के रूप में ModuleCache को भी हटा दिया है और अब सब कुछ अच्छा है।


2
हाँ, यह समस्या प्रसिद्ध spin.atomicobject.com/2016/04/26/swift-long-compile-time
onmyway133

1
मेरे लिए इसी तरह की समस्या Xcode 8.1 पर है। मेरे पास NSConstraintLayout ऑब्जेक्ट्स की एक सरणी है। 4 के साथ ठीक काम किया। 6 के साथ ठीक काम करता है। 7 के साथ इतना अच्छा नहीं है और 8 के साथ बिल्कुल भी काम नहीं करता है। मैंने 4 ऑब्जेक्ट्स के साथ दो सरणियां बनाई हैं और यह ठीक काम करता है।
डैन लफनी

@ onmyway133 मुझे आश्चर्य है कि यह हर समय क्यों नहीं होता है और यह केवल कभी
हनी

क्या आपको लगता है कि अगर आपके पास return ["a", "b", "c", "d", "e", "f"]एक फ़ंक्शन में ऐसा कुछ था जो रिटर्न करता है [String]कि यह अभी भी टाइप-इनफरेंस से परेशानी होगी?
शिम

10

यह समस्या 10 बार की तरह हुई, 8 बार ऐसा हुआ जब मैंने एक वास्तविक डिवाइस कनेक्ट किया और सिम्युलेटर के माध्यम से नहीं चला।

मुझे यकीन नहीं है कि अगर मेरा समाधान एक अच्छा है, लेकिन मेरे लिए मेरा मानना ​​है कि समस्या सिम्युलेटर और एक वास्तविक डिवाइस के बीच स्विच करने के कारण थी। यह अजीब लग सकता है, लेकिन यह ऐसा था जैसे कि यह कैश फ़ाइलों के बीच व्यवधान पैदा कर रहा हो

मेरी समस्या का हल क्या है:

  • साफ बिल्ड फ़ोल्डर: (Xcode पर)Alt + Shift + Command + K
  • सामग्री और सेटिंग्स रीसेट करें: (सिम्युलेटर पर) Command + Shift + K
  • लगातार क्लिक के साथ सामान्य और अधिभार Xcode से थोड़ा अधिक इंतजार किया

इसलिए मूल रूप से किसी भी नए डिवाइस पर चलने से पहले, बस किसी भी कैश को हटा दें।

संपादित करें

मुझे सिर्फ किसी भी डिवाइस कनेक्शन के बिना समस्या थी। मैंने सिर्फ Xcode छोड़ दिया और इसे फिर से खोला और समस्या दूर हो गई। सुनिश्चित नहीं है कि नया कोड लाने / मर्ज करने के बाद मेरा अनुमान है कि यह कुछ पुन: अनुक्रमणिका मुद्दा हो सकता है।


मैं वास्तव में काम कर रहा हूँ यह काम कर रहा हूँ मैं हताश हूँ। दुर्भाग्य से, मैं कोडिंग शुरू करने के बाद फिर से नियंत्रण से बाहर घूमना शुरू कर देता हूं।
श्री टी।

मुझे यकीन नहीं है, लेकिन कभी-कभी सिर्फ शाखाओं को स्विच करना, ऊपर की तरफ से खींचने से मेरी समस्या हल हो गई है। मेरी बात यह है कि मैं वह नहीं करता जो स्वीकार किए गए उत्तर का सुझाव दे रहा है और फिर भी मेरी समस्या का समाधान किसी भी तरह से मैंने अभी तक नहीं किया है: /
Honey

4

मैंने एक और मुद्दा सुलझाया, जिसके कारण SourceKitService 13GB तक मेमोरी का उपयोग कर रहा था ...

मेरे पास स्ट्रिंग थी (बहुत सारे तर्कों के साथ प्रारूप रेखा:

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)

जब इसके साथ इसे ठीक किया गया (कोई मेमोरी नहीं बनी और सामान्य सीपीयू खपत)

    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

4
आपने यह कैसे पता लगाया कि कोड का यह टुकड़ा मुद्दा था?
केके

3

मैं Xcode 9 के साथ इस मुद्दे पर चल रहा हूं , और कई समाधानों का पता लगाया है। मेरे लिए, सोर्स कंट्रोल को डिसेबल करने का काम ट्रिक करने लगा।

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

यदि यह काम नहीं करता है, तो मैं टर्मिनल पर रेनिस कमांड का उपयोग करने की सलाह दूंगा । उस पर और यहाँ

स्रोत नियंत्रण अक्षम करना

अन्य कदम जो मैंने प्रयास किए, लेकिन मदद नहीं की:

  1. Xcode बंद करें -> डिलीट किया हुआ डेटा हटाएं
  2. साइकिल चलाने की मशीन
  3. "स्वच्छ" परियोजना

2

मेरे लिए इसने व्युत्पन्न डेटा को हटाने का काम किया। मेनू से 'उत्पाद' चुनें और Alt-key दबाए रखें और 'क्लीन बिल्ड फोल्डर' चुनें। शॉर्टकी: Alt + Shift + Command + K


2
  1. एक्सकोड से बाहर निकलें
  2. टर्मिनल में चलाएं:

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


LNI के स्वीकृत उत्तर और इस एक के बीच अंतर पर ध्यान दें:

  1. यह हमेशा दुर्घटना से बचने के लिए बेहतर नहीं है। खासकर, जब यह Xcode प्रक्रियाओं / घटकों की बात आती है।
  2. मैं एक Apple डेवलपर नहीं हूं, लेकिन कैश को आंशिक रूप से हटाने से इसकी अखंडता टूट सकती है। सभी कैश को साफ करने के बाद मुझे कोई महत्वपूर्ण देरी नहीं हुई।

2

मैं अपनी परियोजना के लंबे संकलन में समस्याओं का पता लगाने के लिए 4 घंटे बिताता हूं। पहली कोशिश को संकलन करने में 42 मिनट लगते हैं।

मैं स्पष्ट करता हूं /Users/myname/Library/Developer/Xcode/DerivedData/ModuleCache/कि @LNI द्वारा सुझाए गए सभी कैश को फिर से शुरू करने SourceKitServiceऔर कोड के लिए कुछ बदलाव लागू करने के लिए:

1) को

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

से

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

2) को

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

से

           let value1 = obj.property ?? defaultValue

3)

सेवा

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

से

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

परिणामस्वरूप संकलन समय - 3 मिनट, इतनी जल्दी नहीं बल्कि 42 मिनट के लिए बेहतर है।

परिणामस्वरूप, पहले SourceKitService- ~ 5,2 जीबी मेमोरी और उसके बाद ~ 0.37 जीबी

यहां छवि विवरण दर्ज करें


2

मुझे SourceKitService के साथ भी यही समस्या थी।

मैंने हल कर लिया। LOOP के साथ कभी-कभी जोड़ें।

मेरे द्वारा उपयोग की जाने वाली समस्या का पता लगाने के लिए: https://github.com/RobertGummesson/BuildTimeAnalyzer-n-code


आपने कैसे हल किया? मैंने लूप के लिए अपने साक्षात्कार जोड़े और अब कैश को ठीक करना @Zhanserik को ठीक नहीं करता है
10donovanr

1
@ 10donovanr LOOP के साथ विज्ञापन प्रकाशित करें। इसके बाद CMD + SHITF + K
Zhanserik

2

डेटा प्रकार निर्दिष्ट किए बिना या [स्ट्रिंग: कोई भी] के बिना स्विफ्ट में शब्दकोश न बनाएं

यदि हम 'कोई' प्रकार का उपयोग करते हैं, तो कंपाइलर डेटा प्रकार की जाँच के लिए एक अनंत लूप में चल सकता है।

यह कोई भी कंपाइलिंग एरर नहीं बनाएगा, यह हमारे मैक को 'स्विफ्ट सोर्स फाइल्स' को फ्रीज करने के लिए बनाएगा, जिसे 'स्विफ्ट' और 'सोर्सकेइट सर्विस' नाम के टास्क के लिए ज्यादा मेमोरी हासिल होगी।


2

मैंने ऐसे मुद्दे का सामना किया है। स्रोत किट सेवा 10 gb का उपयोग कर रही थी। गतिविधि की निगरानी में स्विफ्ट प्रक्रिया 6 जीबी उपयोग तक पहुंचती है। मैं निम्नलिखित कोड का उपयोग कर रहा था:

var विवरण: [स्ट्रिंग: कोई भी] = ["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]

मैंने इस समस्या को हल करने के लिए कोड को निम्नलिखित में बदल दिया है:

var विवरण: [स्ट्रिंग: कोई भी] = [:]

विवरण ["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


यार .... किसने सोचा होगा .... मेरे पास बिल्कुल इसी तरह का कोड था और सोर्सकिट सर्विस ने सीपीयू से बाहर जीवन को चूस रहा था। कोड बदलने से बस चली गई।
अंबिस

2

समस्या अभी भी XCode 10.0 में होती है। आप स्रोत नियंत्रण विकल्पों में "स्रोत नियंत्रण परिवर्तन दिखाएं" अक्षम करके इसे ठीक कर सकते हैं।

यहां छवि विवरण दर्ज करें


शांत, लेकिन जरूरत से कम अगर इसकी पिसाई Xcode को रोकने के लिए।
शायने

1

पर उसी मुद्दे का सामना किया Xcode 7.2 (7C68)

समाधान एक प्रोटोकॉल की एक विधि को लागू करना था, जिसकी परिभाषा में मेरी कक्षा थी।


1

यह अभी भी xcode संस्करण 7.3.1 (7D1014) में एक मुद्दा है, मेरे लिए इसका कारण था, जैसे कि LNI ने बताया, बहुत लंबा सरणी, वास्तव में इतना लंबा नहीं। मैंने इस तरह से विभिन्न सरणियों में सरणी को तोड़कर अपनी समस्या तय की:

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]

1

मुझे XCode 8.2.1 (8C1002) और निम्नलिखित कोड के साथ एक ही समस्या थी:

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") + "%")
    }
}

और ये एक्सटेंशन:

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

मैंने इस लाइन को TestViewController में टिप्पणी करके हल किया:

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

मुझे इसे खोजने में एक घंटे से अधिक समय लगा, मुझे आशा है कि किसी और के कुछ समय को बचा सकता है। मैंने नंबर 30103533 के साथ Apple को बग रिपोर्ट दी


1

मैं इस समस्या का सामना कर रहा था 3 को स्विफ्ट करने के लिए प्रोजेक्ट को माइग्रेट करने के बाद, यह पता करें कि डेटा प्रकार के बिना बनाए गए शब्दकोशों और सरणी के कारण समाधान में समय लग रहा था।


1

यह व्यवहार मेरी परियोजना में दिखाई दिया जब मैंने गलती से एक वर्ग घोषित किया जो खुद से विरासत में मिला। Xcode 8.2.1, स्विफ्ट 3 का उपयोग करते हुए।


1

मेरे पास भी यह मुद्दा था, मेरे मामले में मैं इस तरह से एक बड़ी सरणी की घोषणा कर रहा था:

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

मैंने एक ही समय में सभी के बजाय 1 प्रति पंक्ति आइटम जोड़कर समस्या का हल किया:

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

इससे समस्या ठीक हो गई।


1

उद्देश्य-सी परियोजनाओं के लिए:

मेरे पास एक ही समस्या थी, और हमारी परियोजना में शून्य स्विफ्ट कोड है, इसलिए यह प्रकार जांच परीक्षक नहीं था।

मैंने यहां हर दूसरे समाधान की कोशिश की और कुछ भी काम नहीं किया - फ़ाइनली ने जो मेरे लिए तय किया था वह रिकवरी मोड में कंप्यूटर को रिबूट कर रहा था और डिस्क की मरम्मत चला रहा था। मैं अंत में फिर से शांति से काम कर सकता हूं!

मैं अनुमान लगा रहा हूं कि यह कुछ टूटे हुए सिम्बल के कारण हुआ, शायद एक दूसरे की ओर इशारा करते हुए और सेवा को एक अंतहीन लूप में इधर-उधर चलाने के लिए।


1

मुझे Xcode 8.2.1 के साथ एक समान समस्या हो रही है - 1000+ लाइनों के एक खंड के साथ / * * / के माध्यम से टिप्पणी की गई। टिप्पणी करने से अनुभाग में समस्या पैदा हुई और टिप्पणी-आउट कोड को हटाकर इसे ठीक कर दिया गया।


1

मैं कई समान संयोजन में भाग गया ?? ऑपरेटर वैकल्पिक स्ट्रिंग मानों के लिए डिफ़ॉल्ट प्रदान करने के लिए।

मैं नीचे डिबग कोड के साथ प्रयोग कर रहा था, जब मेरे भरोसेमंद मिड 2010 मैकबुक प्रो पर प्रशंसक मुश्किल से चलने लगे। SourceKitService हर सीपीयू चक्र को चूस रही थी जो उसे मिल सकता था। टिप्पणी करना और आपत्तिजनक लाइन को अनसुना करने से यह स्पष्ट हो गया कि SourceKitService को क्या पसंद है। यह एक से अधिक का उपयोग करने जैसा लगता है ?? डिफ़ॉल्ट प्रदान करने के लिए ऑपरेटर एक पुरानी मशीन पर एक समस्या है। चारों ओर का काम सिर्फ यह नहीं है। इसे कई असाइनमेंट में तोड़ दें जो कुछ बदसूरत डिबग कोड को भी बदसूरत बना देता है।

placeMark CLPlacemark का एक उदाहरण है। यहां उपयोग किए गए गुण वैकल्पिक तार लौटाते हैं।

मैं OS 10.12.4 (16E195) पर चलने वाले Xcode संस्करण 8.3.2 (8E2002) का उपयोग कर रहा था

// 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 ?? "")

मेरा मानना ​​है कि यह एक मुद्दा है स्ट्रिंग के साथ और नहीं ?? इसके "\() \()" बजाय (स्ट्रिंग इंटरपोलेशन) के साथ प्रयास करने लायक होगा
ब्रूक्स डुबॉइस

1

कार्यों के लिए लंबे अर्रे को बदलना मेरे लिए समस्या को हल करने के लिए लगता है:

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

सेवा:

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

1

टर्मिनल में चलाएं:

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

आप इस उपनाम का उपयोग करके एक टर्मिनल कमांड भी बना सकते हैं:

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

और फिर बस चलाओ

xcodeFix

0

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

SourceKitService ने स्विफ्ट के प्रकार के निष्कासन कार्य का प्रभार लिया।

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

स्पष्ट रूप से प्रकार में परिवर्तन

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

SourceKitService सीपीयू उपयोग तुरंत CPU नीचे गिरा


0

जब Xdyode 11.4.1 पर मुझे एक @iftnamicMemberLookup कॉल आया, तो एक स्विफ्टयूआई @ व्यूब्यूलर ब्लॉक के अंदर सब्सक्राइब हुआ।


0

मेरे पास एक ही मुद्दा था और यह एक प्रोग्रामिंग त्रुटि के कारण था।

मेरे मामले में मैं तुलनीय और न्यायसंगत प्रोटोकॉल को लागू कर रहा था और lhs.param और rhs.param ने lhs और rhs वर्गों के मापदंडों के अनुरूप नहीं था।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.