কীভাবে 'স্ক্যানলোকেশন' সমাধান করবেন আইওএস 13.0 এ অবমুক্ত করা হয়েছিল


10

স্ক্যানার ব্যবহার করার চেষ্টা করার সময় আমি সতর্কতাটি পেয়ে যাচ্ছি যে 'স্ক্যানলোকেশন' আইওএস 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পরিবর্তে scanLocationব্যবহার করুন Scanner

দুর্বল ডকুমেন্টেশনের জন্য অ্যাপলের লজ্জা। তবে স্ক্যানারের অবজেক্টিভ-সি সংস্করণের জন্য এনএসএসস্ক্যানার এইচ ফাইলের তথ্যের ভিত্তিতে, কেবল সুইফটে, সম্পত্তিটি হ্রাস scanLocationকরা হয়েছে এবং currentIndexসম্পত্তিটির সাথে প্রতিস্থাপন করা হয়েছে ।


2

@ আরমড্ডি ইতিমধ্যে সঠিক উত্তর দিয়েছেন, তবে এটি দেখায় যে কীভাবে বৃদ্ধি করা যায় 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' এ এটি পুনরায় সেট করবেন দয়া করে? যেমন। স্ক্যানার.স্ক্যানলোকেশন = 0
গেমডেভ

আপনি না। আপনি সবেমাত্র একটি নতুন উদাহরণ তৈরি করেছেনScanner
চক ক্রুটসিংগার
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.