আমি একটি প্রয়োগকৃত প্রোটোকলের প্রয়োজন ছাড়াই কোনও এনএসওজেক্ট ইভেন্টে কোনও নির্বাচক ব্যবহার করতে চাই । উদাহরণস্বরূপ, একটি বিভাগ পদ্ধতি আছে যা এনএসওজেক্ট উদাহরণটিকে সমর্থন করে যদি এটি সমর্থন করে তবে একটি ত্রুটি সম্পত্তি সেট করা উচিত। এটি কোড, এবং কোডটি উদ্দেশ্য হিসাবে কাজ করে:
if ([self respondsToSelector:@selector(setError:)])
{
[self performSelector:@selector(setError:) withObject:[NSError errorWithDomain:@"SomeDomain" code:1 userInfo:nil]];
}
যাইহোক, সংকলকটি সেট-এররার: স্বাক্ষর সহ কোনও পদ্ধতি দেখতে পাচ্ছে না, সুতরাং এটি আমাকে একটি সতর্কতা দেয়, যেখানে প্রতিটি @selector(setError:)
স্নিপেট থাকে:
Undeclared selector 'setError:'
এই সতর্কতা থেকে মুক্তি পেতে আমার কোনও প্রোটোকল ঘোষণা করতে হবে না, কারণ আমি এমন সমস্ত শ্রেণি চাই না যা বিশেষ কিছু প্রয়োগ করতে এটি ব্যবহার করতে পারে। কেবল কনভেনশন করে আমি তাদের একটি setError:
পদ্ধতি বা সম্পত্তি থাকতে চাই।
এটা কি করণীয়? কিভাবে?
চিয়ার্স,
ইপি