gpt4 book ai didi

swift - String.Index 没有名为 advanceBy 的成员 - swift

转载 作者:行者123 更新时间:2023-11-30 12:49:18 24 4
gpt4 key购买 nike

我需要验证医疗保险号码,我正在关注此线程:How do I validate an Australian Medicare number?

我收到错误

代码是:String.Index没有名为advancedBy的成员

 let matches = expression.matchesInString(medicareNumber, options: NSMatchingOptions.ReportProgress, range: NSMakeRange(0, length))


if (matches.count > 0 && matches[0].numberOfRanges > 2) {
let base = medicareNumber.substringWithRange(medicareNumber.startIndex...medicareNumber.startIndex.advancedBy(matches[0].rangeAtIndex(1).length))
let checkDigitStartIndex = medicareNumber.startIndex.advancedBy(matches[0].rangeAtIndex(2).location )
let checkDigitEndIndex = checkDigitStartIndex.advancedBy(matches[0].rangeAtIndex(2).length)
let checkDigit = medicareNumber.substringWithRange(checkDigitStartIndex..<checkDigitEndIndex)
var total = 0

for i in 0..<multipliers.count {
total += Int(base.charAtIndex(i))! * multipliers[i]
}

return (total % 10) == Int(checkDigit)
}

我使用的是 Xcode 6.2,如何解决这个问题?请注意,我现在需要在不升级 Xcode 的情况下解决这个问题。

最佳答案

swift 1.2

使用提前

let base = medicareNumber.substringWithRange(
medicareNumber.startIndex...advance(
medicareNumber.startIndex,
matches[0].rangeAtIndex(1).length
)
)

swift 2

advance 已在 Swift2 中弃用。
使用advanceBy

let base = medicareNumber.substringWithRange(
medicareNumber.startIndex...medicareNumber.startIndex.advancedBy(
matches[0].rangeAtIndex(1).length
)
)

swift 3

advancedBy(_:) 已在 Swift3 中弃用。
使用index(_:offsetBy:)

let base = medicareNumber.substringWithRange(
medicareNumber.startIndex...medicareNumber.index(
medicareNumber.startIndex,
offsetBy: matches[0].rangeAtIndex(1).length)
)
)

关于swift - String.Index 没有名为 advanceBy 的成员 - swift,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41205546/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com