Ich konvertiere meinen Code in Swift 3 und habe nur noch 3 Buildtime-Fehler, von denen 2 mit meinem Unverständnis zu tun haben, wie Bereiche jetzt funktionieren. Zum Beispiel habe ich:ClosedRange und Array-Subskribierung in Swift 3
func shuffle(_ tenseArray: [ Tense ], ...
var indices = [ Int ]()
for tense in tenseArray {
if let aRange = tenseRange[ tense ] {
indices.append(aRange)
}
}
Wo Tense
eine Enumeration ist, dass so etwas aussieht:
enum Tense: String {
case IndicativePresent = "Indicative Present"
case IndicativePreterite = "Indicative Preterite"
case IndicativeImperfect = "Indicative Imperfect"
...
Und tenseRange
ist definiert als:
var tenseRange: [ Tense : ClosedRange<Int> ] = [:] // maps Tense enums to ranges of tense indices
und ist bevölkert wie folgt aus:
tenseRange[ Tense.IndicativePresent ] = (11 ... 16)
tenseRange[ Tense.IndicativePreterite ] = (17 ... 22)
tenseRange[ Tense.IndicativeImperfect ] = (23 ... 28)
...
Für die Linie in func shuffle
indices.append(aRange)
Ich erhalte den Fehler keinen Wert vom Typ '[Int]' mit einem Index vom Typ 'CountableRange' SUBSCRIPT kann. Ich würde diese Bereiche gerne in Ints umwandeln, um sie in Indizes eines Arrays zu verwenden, wie ich es früher in Swift konnte, aber ich kann nicht herausfinden, wie. Irgendwelche Ideen?
Vielen Dank im Voraus!