我已经迁移到Swift 3.0,现在我在这一行得到一个错误:
let lastFourDigits = (accountNumber as NSString).substringWithRange(accountNumber.endIndex.advancedBy(-4)..<accountNumber.endIndex)
No '..<' candidates produce the expected contextual result type 'NSRange' (aka '_NSRange')
。我哪里做错了?
索引操作的语法改变(参见获取Swift编程语言中字符串的第n个字符及其完整原理:Swift Evolution 0065):
let accountNumber = "XX0000000000000000001234"
let lastFourDigits = accountNumber[accountNumber.index(accountNumber.endIndex, offsetBy: -4)..<accountNumber.endIndex]
print("Last 4: (lastFourDigits)")
Swift中不需要使用NSString
或NSRange
更简单的语法是:
let lastFourDigits = accountNumber.substring(from: accountNumber.index(accountNumber.endIndex, offsetBy: -4))