「scanLocation」を解決する方法はiOS 13.0で廃止されました


10

スキャナーを使用しようとすると、「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
}

回答:


9

tl; dr- Swift currentIndexで使用する場合の代わりscanLocationに使用Scannerします。

貧弱なドキュメンテーションに対するAppleの恥。ただし、Objective-CバージョンのScannerのNSScanner.hファイルの情報に基づいて、Swiftでのみ、このscanLocationプロパティは非推奨になり、currentIndexプロパティに置き換えられました。


2

@rmaddyはすでに正しい答えを出しましたが、これはcurrentIndex1をに追加するだけとは異なるため、これをインクリメントする方法を示しています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
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.