2017-04-13 134 views
-4
let subString = self[Range(start: start++, end: endIndex)] 
if subString.hasPrefix(other){ 
    return true 
} 

我在迅速2.3此代碼,我使用此代碼作爲擴展爲字符串值, 的xcode將它轉換爲遵循轉換的代碼迅速2.3至迅速3

let subString = self[((start++) ..< endIndex)] 

,並開始給我錯誤

一元運算符 '++' 不能被應用於類型的 '@lvalue String.Index'(又名 '@lvalue String.CharacterView.Index')

中的操作數

我現在不知道Xcode希望我寫它的究竟是什麼?

+0

更換start++比較[如何在斯威夫特3 String.Index工作(http://stackoverflow.com/q/39676939/2976878) - 你想做'index(after:start)'(這不會改變'start',但你可以很容易地通過在單獨的行上賦值)。 – Hamish

+0

@Harmish幫助(y) –

+0

這就是我正在做的!我只是說如果我談論同樣的問題,我不能評論!那麼該怎麼辦? –

回答

2

在Swift 3中,您不能通過Int直接遞增String.Index

我不知道start究竟是如何定義的,但你可以用

self.index(start, offsetBy: 1) 
+0

感謝@vadian,像魅力一樣工作 –

+0

@GurjotKalsi請確保您接受vadian的答案,如果它適合您。 – Adrian

+0

是的,我試過說等幾分鐘!所以我只是在等待 –