スキャナーを使用しようとすると、「scanLocation」がiOS 13.0で廃止されたという警告が表示されます。次の場所からスキャンできることは文字列をスキャンするための基本であるので、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
}
tl; dr-SwiftでcurrentIndex
を使用する場合、scanLocation
ではなくScanner
を使用します。
恥ずかしいApple。しかし、SwiftのみのObjective-CバージョンのScannerのNSScanner.hファイルの情報に基づいて、scanLocation
プロパティが廃止され、currentIndex
プロパティに置き換えられました。
@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)
}