2017-08-09 12 views
7

मैं अपने आवेदन के विकास के लिए तेजी से उपयोग कर रहा हूं और इसके लिए तेज़ लिंट का उपयोग कर रहा हूं।स्विफ्टलिंट चेतावनी: जहां उल्लंघन के लिए: 'कहां' के लिए ```` में 'जहां' खंडों को प्राथमिकता दी जाती है। (for_where)

for settingsKeys in searchResults { 

     if settingsKeys.key == settingsObject.key { 
      settingsKeys.value = settingsObject.value 
      try context.save() 
     } 
     } 

स्क्रीनशॉट इसके द्वारा जुड़ा हुआ है:

enter image description here

+0

प्रश्न क्या है यहाँ? –

उत्तर

8

वाक्य रचना अपने swiftlint विन्यास द्वारा पसंद किया है: लेकिन मैं निम्नलिखित कोड के बारे में एक चेतावनी हो रही है

for settingsKeys in searchResults where settingsKeys.key == settingsObject.key { 
    settingsKeys.value = settingsObject.value 
    try context.save() 
} 

कौन सा

for settingsKeys in (searchResults.filter { $0.key == settingsObject.key }) { 
    settingsKeys.value = settingsObject.value 
    try context.save() 
} 
के समान है

क्या आप जानते ही key साथ केवल एक ही परिणाम है, तो आप सीधे

if let settingsKeys = (searchResults.first { $0.key == settingsObject.key }) { 
    settingsKeys.value = settingsObject.value 
    try context.save() 
} 
+0

यदि आप फ़िल्टर का उपयोग कर एक ही व्यवहार चाहते हैं, तो आपको '.lazy.filter' – Alexander

+0

@Alexander True की आवश्यकता होगी, ऐसे विवरणों में जाना नहीं चाहते थे। – Sulthan

2

लग रहा है का उपयोग कर सकते है जैसे कि यह for का हिस्सा बनने के where उम्मीद है ...

for settingsKeys in searchResults where settingsKeys.key == settingsObject.key { 
    settingsKeys.value = settingsObject.value 
    try context.save() 
} 
संबंधित मुद्दे

 संबंधित मुद्दे