ios - चेतावनी: 'वर्ण' पदावनत किया जाता है: सीधे स्ट्रिंग या सबस्ट्रिंग का उपयोग करें




string substring (4)

characters - स्ट्रिंग की एक उदाहरण संपत्ति, Xcode 9.1 के साथ निकाली गई है

characters संपत्ति का उपयोग करके स्ट्रिंग से एक विकल्प प्राप्त करना बहुत उपयोगी था, लेकिन अब इसे हटा दिया गया है और Xcode प्रतिस्थापन का उपयोग करने का सुझाव देता है। मैंने एसओ प्रश्नों और ऐप्पल डेवलपर ट्यूटोरियल / दिशानिर्देशों को उसी के आसपास जांचने की कोशिश की है। लेकिन सुझाए अनुसार कोई समाधान / वैकल्पिक नहीं देख सका।

यहाँ चेतावनी संदेश है:

'वर्ण' पदावनत किया जाता है: कृपया स्ट्रिंग या सबस्ट्रिंग का उपयोग करें

मेरे पास बहुत सारे स्ट्रिंग ऑपरेशन हैं जो प्रॉपर्टी characters का उपयोग करके किए जाते हैं।

किसी को भी इस अद्यतन के बारे में कोई विचार / जानकारी है?


आप {$ 0.characters.first का उपयोग किए बिना भी शब्दकोश समूह के लिए इस कोड का उपयोग कर सकते हैं! }।

let cities = ["Shanghai": 24_256_800, "Karachi": 23_500_000, "Beijing": 21_516_000, "Seoul": 9_995_000]
let groupedCities = Dictionary(grouping: cities.keys) { $0.first! }
print(groupedCities)

इस characters उपयोग करें क्योंकि String ने स्विफ्ट 2.0 में एक संग्रह बंद कर दिया। हालाँकि यह स्विफ्ट 4 में अभी भी वैध कोड है, लेकिन अब यह आवश्यक नहीं है कि String फिर से एक Collection

उदाहरण के लिए एक स्विफ्ट 4 String अब एक सीधी गिनती गुण है जो वर्ण गणना देता है:

// Swift 4
let spString = "Stack"
spString.count           // 5

स्ट्रिंग और सबस्ट्रिंग के उदाहरण।

तार

स्विफ्ट 4 String अब सीधे एलीमेंट मिलता है जो स्ट्रिंग का पहला चरित्र देता है: (string.characters.first)

let spString = "Stack"
let firstElement = spString.first   //S

सबस्ट्रिंग

सबस्ट्रिंग के प्रयोग से पहला चरित्र मिलता है।

let spstring = "Welcome"
let indexStartOfText = spstring.index(spstring.startIndex, offsetBy: 1)
let sub = spstring.substring(to: indexStartOfText)
print(sub) //W

स्ट्रिंग्स में हेरफेर के लिए सबसे आम मामलों में से एक JSON प्रतिक्रियाओं के साथ है। इस उदाहरण में मैंने बिटकॉइन JSON ऑब्जेक्ट के अंतिम (n) वर्णों को छोड़ने के लिए अपने वॉच ऐप में एक एक्सटेंशन बनाया।

स्विफ्ट 3:

func dropLast(_ n: Int = 0) -> String {
    return String(characters.dropLast(n))

Xcode 9.1 त्रुटि संदेश:

'वर्ण' पदावनत किया जाता है: सीधे स्ट्रिंग या सबस्ट्रिंग का उपयोग करें

Xcode हमें सीधे स्ट्रिंग चर या विधि का उपयोग करने के लिए कह रहा है।

स्विफ्ट 4:

func dropLast(_ n: Int = 0) -> String {
    return String(dropLast(n))
    }

पूर्ण एक्सटेंशन:

extension String {
    func dropLast(_ n: Int = 0) -> String {
        return String(dropLast(n))
    }

    var dropLast: String {
        return dropLast()
    }
}

कॉल करें:

print("rate:\(response.USDRate)")
let literalMarketPrice = response.USDRate.dropLast(2)
print("literal market price: \(literalMarketPrice)")

कंसोल:

//rate:7,101.0888 //JSON float
//literal market price: 7,101.08 // JSON string literal

अतिरिक्त उदाहरण:

  • print("Spell has \(invisibleSpellName.count) characters.")
  • return String(dropLast(n))
  • return String(removeLast(n))

प्रलेखन:

आप अक्सर सामान्य विधियों जैसे dropLast() या removeLast() का उपयोग कर रहे होंगे या removeLast() तो यहां प्रत्येक विधि के लिए स्पष्ट Apple प्रलेखन है।

droplast()

removelast()

गिनती के पात्र


स्विफ्ट 4 ने स्ट्रिंग एपीआई पर बदलाव पेश किए।
आप केवल stringValue.characters.count > 0 बजाय !stringValue.isEmpty उपयोग कर सकते हैं

अधिक जानकारी के लिए आप यहाँ से नमूना प्राप्त करें

उदाहरण के लिए

let edit = "Summary"
edit.count   // 7





xcode9.1