iOS 13.0中不建议使用“ scanLocation”解决方法


10

尝试使用扫描仪时,我收到警告称'scanLocation'在iOS 13.0中已弃用。由于能够从下一个位置进行扫描对于扫描String至关重要,因此想知道使用什么代替scanLocation。Apple的Scanner文档甚至都没有提到过时,更不用说什么代替了scanLocation。

不推荐使用scanLocation的示例:

while !scanner.isAtEnd {
    print(scanner.scanUpToCharacters(from: brackets))
    let block = scanner.string[scanner.currentIndex...]
    print(block)
    scanner.scanLocation = scanner.scanLocation + 1
}

Answers:


9

tl; dr-使用,currentIndex而不是在Swift中scanLocation使用Scanner

对于可怜的文档,Apple感到羞耻。但是基于Objective-C版本的Scanner的NSScanner.h文件中的信息(仅在Swift中),该scanLocation属性已被弃用并替换为该currentIndex属性。


2

@rmaddy已经给出了正确的答案,但这显示了如何递增,currentIndex因为它不同于只是将1加到上scanLocation

while !scanner.isAtEnd {
    print(scanner.scanUpToCharacters(from: brackets))
    let block = scanner.string[scanner.currentIndex...]
    print(block)
    scanner.currentIndex = scanner.string.index(after: scanner.currentIndex)
}

您如何将其重置为“ 0”?例如。Scanner.scanLocation = 0
GameDev

你不知道 您只是创建了Scanner
Chuck Krutsinger
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.