আমার কাছে একটি অবজেক্ট (একটি ইউআইভিউকন্ট্রোলার) রয়েছে যা আমি সংজ্ঞায়িত প্রোটোকলের সাথে সামঞ্জস্য হতে পারি বা নাও করতে পারি।
আমি জানি যে আমি নির্ধারণ করতে পারি যে বিষয়টি যদি প্রোটোকলের সাথে সম্মতি দেয় তবে নিরাপদে পদ্ধতিটি কল করুন:
if([self.myViewController conformsToProtocol:@protocol(MyProtocol)]) {
[self.myViewController protocolMethod]; // <-- warning here
}
তবে এক্সকোড একটি সতর্কতা দেখায়:
warning 'UIViewController' may not respond to '-protocolMethod'
এই সতর্কতাটি রোধ করার সঠিক উপায় কী? আমি ক্লাস self.myViewControllerহিসাবে কাস্ট করতে পারে না MyProtocol।
id<MyProtocol> p = (id<MyProtocol>)self.myViewController;উত্তরগুলির পরিবর্তে আপনি যে কোনও জায়গায় প্রোটোকলে কাস্ট করছেন সেই উত্তরটি @ এবং এর দ্বারা ব্যবহার করার পরামর্শ দেব - এই উত্তর এবং @ এন্ডিস উভয়ই সঠিক, তবে তার আরও সঠিক।