উত্তর:
স্থিতিশীল বার্তার উদাহরণগুলিও রয়েছে রিসপন্ডটোসলেক্টর: (এসইএল) নির্বাচনকারী আপনি এটিকে ডাকবেন:
[MyClass instancesRespondToSelector:@selector(someMethod:withParams:)]
বা এই মত:
[[myObject class] instancesRespondToSelector:@selector(someMethod:withParams:)]
আপনি যদি কোনও কন্সট্রাক্টরকে কল করতে চান বা এটির উপর নির্ভর করে অন্য কোনওটিকে কল করতে চান (এটি উদাহরণস্বরূপ বলার আগে আমি বলতে চাই) এটি কার্যকর হতে পারে।
ব্যবহার respondsToSelector:
। ডকুমেন্টেশন থেকে :
respondsToSelector:
একটি বুলিয়ান মান প্রদান করে যা নির্দেশ করে যে প্রাপক কোনও নির্দিষ্ট বার্তাকে প্রতিক্রিয়া জানাতে পারে এমন কোনও পদ্ধতি প্রয়োগ করে বা উত্তরাধিকারী কিনা।
- (BOOL)respondsToSelector:(SEL)aSelector
পরামিতি
aSelector - একটি নির্বাচক যা একটি বার্তা শনাক্ত করে।ফেরত মান
YES
যদি রিসিভার কার্যকরী বা অধিকারপ্রাপ্ত একটি পদ্ধতি যে উত্তর দিতে পারেন aSelector , অন্যথায়NO
।
আপনি প্রতিক্রিয়া খুঁজছেন টো নির্বাচনকারী: -
if ([foo respondsToSelector: @selector(bar)] {
[foo bar];
}
ডোনাল যেমন উপরেরটি বলেছে তেমনি foo অবশ্যই বার নির্বাচনকারীকে গ্রহণ করতে পারে। তবে, foo যদি এমন কোনও প্রক্সি থাকে যা বারটির বার্তাটি প্রাপ্ত কিছু অন্তর্নিহিত বস্তুর কাছে বারকে ফরওয়ার্ড করে, তবে প্রতিক্রিয়াশক্তি নির্বাচন করুন: বার্তাটির প্রতিক্রিয়া ব্যক্তকারী কোনও বার্তায় বার্তা ফরোয়ার্ড করা সত্ত্বেও আপনাকে কিছু বলবে না।
প্রতিক্রিয়াশীলদের সাথে নির্বাচকদের চেক করা সাধারণত সাধারণত প্রতিনিধি পদ্ধতির জন্যই হয়। আপনার প্রতিনিধি পদ্ধতির জন্য ফরওয়ার্ড ইনভোকেশন বা প্রক্সিগুলি ব্যবহার করা উচিত নয়। যদি আপনাকে অন্যান্য পরিস্থিতিতে প্রতিক্রিয়াশক্তি নির্বাচন করতে হয় তবে আপনি নিশ্চিত করতে পারেন যে আপনার প্রোগ্রামটি ডিজাইনের আরও উপযুক্ত কোনও উপায় নেই।
- forwardInvocation:
) ঘোষণা করেন নি ।