IOS 13.0 में 'स्कैनलोकेशन' को कैसे हल किया जाए


10

एक स्कैनर का उपयोग करने की कोशिश करते समय मुझे चेतावनी मिल रही है कि iOS 13.0 में 'स्कैनलोकेशन' को हटा दिया गया था। चूंकि अगले स्थान से स्कैन करने में सक्षम होना एक स्ट्रिंग को स्कैन करने के बजाय मौलिक है, यह सोचकर कि स्कैनलोकेशन के बजाय क्या उपयोग करना है। स्कैनर के लिए ऐप्पल के प्रलेखन में भी कमी का उल्लेख नहीं किया गया है, अकेले चलो सुझाव देते हैं कि स्कैनलोकेशन की जगह क्या ली गई है।

स्कैनलोकेशन का उपयोग करने का उदाहरण, जिसे पदावनत किया गया है:

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

जवाबों:


9

tl; dr - स्विफ्ट का उपयोग currentIndexकरने के बजाय उपयोग करें ।scanLocationScanner

गरीब प्रलेखन के लिए Apple पर शर्म आती है। लेकिन केवल स्विफ्ट में ऑब्जेक्टिव-सी संस्करण के लिए NSScanner.h फ़ाइल में जानकारी के आधार पर, 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
चक क्रट्सिंगर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.