2016-09-28 5 views
4

Ich habe folgende Code, der in Swift 2 funktioniert gut:inout String ist nicht konvertierbar String in Swift 3 Bereich

let myModifiedString = myOriginalString.replacingOccurrences(of: "#(?:\\S+)\\s?", 
      with: "", 
      options: .regularExpression, 
      range: Range(myOriginalString.characters.indices)) 

Ich bin beschäftigt Upgrade meinen Code Swift 3, aber, und ich erhalte die Fehler 'inout String' kann nicht in 'String' konvertiert werden.

Der Fehler tritt bei myOriginalString.characters.indices auf.

Ich sah, dass Swift 3 einige Änderungen vorgenommen hat, wie Bereiche implementiert werden und auch einige String-Funktionalität. Ich kann einfach keine prägnante Lösung finden, um das Problem zu lösen und diese Anweisung in die richtige Swift 3-Syntax umzuwandeln. Was ist die richtige Swift 3-Syntax für die Anweisung?

+0

Im Wesentlichen das gleiche Problem wie in http://stackoverflow.com/questions/39533523/how-to-compare- stringstring-index-und-defaultbidirektionalindicesstring-character. –

Antwort

2

In Swift 3, indices Eigentum ist eine Sammlung von Index geworden, und nicht mehr eine Art von Range. Wenn Sie eine Reihe von Index repräsentiert den gesamten String wollen, müssen Sie so etwas schreiben:

let myModifiedString = myOriginalString.replacingOccurrences(of: "#(?:\\S+)\\s?", 
                  with: "", 
                  options: .regularExpression, 
                  range: myOriginalString.startIndex..<myOriginalString.endIndex) 
Verwandte Themen