2016-09-28 75 views
4

我有下面的代碼,在斯威夫特2正常工作:INOUT字符串不是斯威夫特3範圍內轉換爲字符串

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

我忙我的代碼升級到斯威夫特3,但是,我得到的錯誤'inout String'不能轉換爲'String'類型。

myOriginalString.characters.indices發生錯誤。

我看到Swift 3對如何實現範圍以及某些字符串功能做了一些更改。我似乎無法找到一個簡潔的解決方案來解決問題並將此語句轉換爲正確的Swift 3語法。語句的Swift 3語法是什麼?

+0

本質上相同的問題在http://stackoverflow.com/questions/39533523/how-to-compare- rangestring指數和-defaultbidirectionalindicesstring-CHARAC。 –

回答

2

在Swift 3中,indices屬性已經成爲Index的集合,而不再是一種Range。如果你想指數代表全字符串一個範圍,你需要寫這樣的事:

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