स्विफ्ट में, String
इंडेक्सिंग ग्रैफेम क्लस्टर का सम्मान करता है, और IndexType
Int
नहीं है। आपके पास दो विकल्प हैं - स्ट्रिंग (आपका यूयूआईडी) को एनएसएसटींग में डालें, और इसे "पहले" के रूप में उपयोग करें, या एनएच चरित्र में इंडेक्स बनाएं।
दोनों वर्णन नीचे है:
हालांकि, विधि स्विफ्ट के संस्करणों के बीच मौलिक बदल गया है। बाद के संस्करणों के लिए नीचे पढ़ें ...
स्विफ्ट 1
let s: String = "Stack Overflow"
let ss1: String = (s as NSString).substringToIndex(5) // "Stack"
//let ss2: String = s.substringToIndex(5)// 5 is not a String.Index
let index: String.Index = advance(s.startIndex, 5)
let ss2:String = s.substringToIndex(index) // "Stack"
सीएमडी क्लिक भ्रमित करने वाले NSString
परिभाषा पर ले जाता है, तथापि String
पर अध्यक्ष एवं प्रबंध निदेशक-क्लिक करें और आप निम्नलिखित मिलेगा substringToIndex
पर:
extension String : Collection {
struct Index : BidirectionalIndex, Reflectable {
func successor() -> String.Index
func predecessor() -> String.Index
func getMirror() -> Mirror
}
var startIndex: String.Index { get }
var endIndex: String.Index { get }
subscript (i: String.Index) -> Character { get }
func generate() -> IndexingGenerator<String>
}
स्विफ्ट 2
commen के रूप में Tator @DanielGalasko बताते advance
अब बदल गया है ...
let s: String = "Stack Overflow"
let ss1: String = (s as NSString).substringToIndex(5) // "Stack"
//let ss2: String = s.substringToIndex(5)// 5 is not a String.Index
let index: String.Index = s.startIndex.advancedBy(5) // Swift 2
let ss2:String = s.substringToIndex(index) // "Stack"
स्विफ्ट 3
स्विफ्ट 3 में, इसे फिर से बदल गया है:
let s: String = "Stack Overflow"
let ss1: String = (s as NSString).substring(to: 5) // "Stack"
let index: String.Index = s.index(s.startIndex, offsetBy: 5)
var ss2: String = s.substring(to: index) // "Stack"
स्विफ्ट 4
स्विफ्ट 4 में, अभी तक एक और परिवर्तन:
let s: String = "Stack Overflow"
let ss1: String = (s as NSString).substring(to: 5) // "Stack"
let index: String.Index = s.index(s.startIndex, offsetBy: 5)
var ss3: Substring = s[...index] // "Stack"
var ss4: String = String(s[...index]) // "Stack"
और अधिक सुरुचिपूर्ण समाधान ** (** UIDevice.currentDevice() identifierForVendor.UUIDString ** के रूप में NSString।) ** substringToIndex (8) -। जरूरत के कनवर्ट यहां आने वाले लोगों के लिए शीर्षक पर आधारित प्रकार –
, माना जाता डुप्लिकेट नहीं बहुत है उपयोगी। – Suragch