没有'..<"候选生成预期的上下文结果类型"NSRange Swift 3



我已经迁移到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中不需要使用NSStringNSRange

更简单的语法是:

let lastFourDigits = accountNumber.substring(from: accountNumber.index(accountNumber.endIndex, offsetBy: -4))

最新更新