2016-06-28 7 views
17

मैं स्विफ्ट 3 में एक सीमा है कि मैं पहले से ही स्विफ्ट 2 में था बनाने के लिए कोशिश कर रहा हूँ, लेकिन यह मुझे इस त्रुटि दे रही रखता है: String may not be indexed with 'Int', it has variable size elementsस्विफ्ट में एक सीमा नहीं बना सकता 3

यहाँ मेरी कोड है:

let range = expireRange!.startIndex.advancedBy(n: 7) ..< expireRange!.startIndex.advancedBy(n: 16) 

expiredRange एक Range<Index>?

स्विफ्ट 2 में है, मैं था:

let range = expireRange!.startIndex.advancedBy(7)...expireRange!.startIndex.advancedBy(16) 

उत्तर

40

स्विफ्ट 3 में, "संग्रह के लिए कदम उनके सूचकांक", स्विफ्ट विकास पर A New Model for Collections and Indices देखते हैं।

let string = "ABCDEFG" 
if let range = string.range(of: "CDEF") { 
    let lo = string.index(range.lowerBound, offsetBy: 1) 
    let hi = string.index(range.lowerBound, offsetBy: 3) 
    let subRange = lo ..< hi 
    print(string[subRange]) // "DE" 
} 

public func index(_ i: Index, offsetBy n: IndexDistance) -> Index 

विधि स्ट्रिंग पर कहा जाता है रेंज (जो अब गुण lower/upperBound है से नए सूचकांक की गणना करने के:

यहाँ स्ट्रिंग पर्वतमाला और सूचकांक के लिए एक उदाहरण है बजाय start/endIndex)।

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