কুইন্ড পারফরম্যান্স বাতিল করা হচ্ছে নির্বাচনকারী: পরে ডেলি কল


115

আপনি যখন কল করবেন তখন কি কেউ জানেন যে ইভেন্ট স্ট্যাক বা টাইমার স্ট্যাক (বা এটিপিআই দ্বারা ব্যবহৃত কোনও ব্যবস্থা) এটি ইতিমধ্যে সারিবদ্ধ নির্বাচিত ইভেন্টগুলি বাতিল করা সম্ভব কিনা? performSelector:withObject:afterDelay ?

আমি এই ইভেন্টের স্ট্যাকটি কোনও ট্যাববার ট্যাবের মধ্যে একটি চিত্রের বৈশিষ্ট্যগুলি পরিবর্তন করতে ব্যবহার করেছিলাম এবং লুপের জন্য দ্রুত সম্পাদন করা একটিতে 10 সেকেন্ড পর্যন্ত মূল্যবান পরিবর্তনগুলি সারি করতাম ... সম্ভবত 5 মিলিসেকেন্ড বা তারও বেশি।

সমস্যা দেখা দেয় যদি ব্যবহারকারী ট্যাবগুলি স্যুইচ করে ... যেমনটি বলুন যে আমি ট্যাব # 4 সক্ষম হওয়ার সাথে সাথে প্রদর্শিত এমন একটি চিত্রের জন্য চিত্রের পরিবর্তনগুলি সারিবদ্ধ করে রেখেছি এবং তারপরে ব্যবহারকারীটি দ্রুত ট্যাব # 3 এবং তারপরে ডানদিক ট্যাবটিতে স্যুইচ করে # 4 ... এটি তখন পুরানো সারিটি চলতে থাকা সময়ে আরও 10 সেকেন্ডের মূল্যবান পরিবর্তনগুলির পুনরায় সারি তৈরি করবে, সম্ভবত যথেষ্ট দ্রুত স্যুইচ করা থাকলে প্রায় 2 বা 3 সেকেন্ডের মধ্যে ... তবে এমনকি 5 সেকেন্ডে পৌঁছনো এখানে প্রবাহটি ছিল একটি সমস্যা।

সুতরাং নতুন স্ট্যাক লাগানোর আগে আমার পুরানো স্ট্যাক পরিবর্তনগুলি বাতিল করার জন্য কিছু উপায়ের প্রয়োজন ছিল ...

আমি অতীত কাল থেকে এই প্রশ্নটি লিখছি কারণ আমি ইতিমধ্যে প্লেব্যাক ফাংশনে বাজপাখির ইভেন্ট ফিল্টার যুক্ত করে এই সমস্যার বিকল্প সমাধান নিয়ে এসেছি। তবে ঘটনা বাতিল হওয়া সম্ভব হলে আমি এখনও আগ্রহী, কারণ আমার এমন অনুভূতি রয়েছে যে ভবিষ্যতে এই জাতীয় জ্ঞান কার্যকর হবে y রেন্ডার কোন সহায়তার জন্য আপনাকে ধন্যবাদ :)


আপনি কীভাবে প্লেব্যাক ফাংশনে বাজপাখি ইভেন্ট ফিল্টার ব্যবহার করতে পারেন?
মনিগান্ডা সারাওয়ান

উত্তর:


241
[NSObject cancelPreviousPerformRequestsWithTarget:]

অথবা

[NSObject cancelPreviousPerformRequestsWithTarget:selector:object:]

targetমূল বস্তুর উপর হয় performSelector:afterDelay:ডাকা হয়।

উদাহরণ স্বরূপ:

// schedule the selector
[self performSelector:@selector(mySel:) withObject:nil afterDelay:5.0];
// cancel the above call (and any others on self)
[NSObject cancelPreviousPerformRequestsWithTarget:self];

অ্যাপল ডক্স দেখুন , এটি performSelector:withObject:afterDelay:বর্ণনার শেষে ঠিক ।


33
এর ব্যবহার সম্পর্কে কিছু স্পষ্টতার জন্য, এটি ব্যবহার করে দেখুন: [এনএসবজেক্ট বাতিলপ্রিপ্রিফারফর্মপ্রাপ্তি উইকেটরেট: স্ব];
dnstevenson

[এনএসবজেক্ট বাতিল করুনপ্রিফারফর্মফরমেশনস উইথটারেট: স্ব-নির্বাচক: @ নির্বাচক (মাইসেল :) অবজেক্ট: নীল];
ওয়েবট্রিক 101

2

সমস্ত পূর্ববর্তী সম্পাদন অনুরোধ বাতিল করতে, আপনি ব্যবহার করতে পারেন:

[NSObject cancelPreviousPerformRequestsWithTarget:self];   

2

যদি আপনি এটির সাথে মিলে যাওয়ার জন্য "পারফরমেশনসलेक्टার" সন্ধান করছেনcancelPreviousPerformSelector " ... এটি হয় না। (উঘ, আপেল, আপনি আমার সাথে কেন এমন করেন ???)

, এর, আহ, "ম্যাচিং" পদ্ধতিগুলি হ'ল:

performSelector

cancelPreviousPerformRequestsWithTarget

(দস্তাবেজগুলি অনুসন্ধান না করে কেবল এটি অতিরিক্ত মনে রাখা সহজ)


1

এনএসআরনলুপ ডক্স পরীক্ষা করে দেখুন। তুমি চাও-cancelPerformSelectorsWithTarget:

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