Cara mengatasi 'scanLocation' sudah tidak digunakan lagi di iOS 13.0


10

Saat mencoba menggunakan Scanner, saya mendapat peringatan bahwa 'scanLocation' sudah tidak digunakan lagi di iOS 13.0. Karena dapat memindai dari lokasi berikutnya agak mendasar untuk memindai sebuah String, bertanya-tanya apa yang harus digunakan daripada scanLocation. Dokumentasi Apple untuk Scanner bahkan tidak menyebutkan penghinaan, apalagi menyarankan apa yang telah menggantikan ScanLocation.

Contoh menggunakan scanLocation, yang sudah usang:

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

Jawaban:


9

tl; dr - gunakan currentIndexalih-alih scanLocationsaat menggunakan Scannerdi Swift.

Malu pada Apple karena dokumentasi yang buruk. Tetapi berdasarkan informasi dalam file NSScanner.h untuk versi Objective-C Scanner, hanya di Swift, scanLocationproperti telah ditinggalkan dan diganti dengan currentIndexproperti.


2

@rmaddy sudah memberikan jawaban yang benar, tetapi ini menunjukkan cara menaikkan currentIndexkarena berbeda dari hanya menambahkan 1 ke 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)
}

bagaimana Anda mengatur ulang kembali ke '0'? misalnya. scanner.scanLocation = 0
GameDev

Kamu tidak. Anda baru saja membuat contoh baruScanner
Chuck Krutsinger
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.