का उपयोग करके ऑब्जेक्ट को संदेश भेजना निम्नलिखित respondsToSelector
परीक्षण पास करेगा, लेकिन या [viewController action:selector]
पर वास्तविक कॉल पर SIGABRT
होगा। स्टैक ट्रेस राज्यों 'एनएसआईएनवालिडअर्ग्यूमेंट अपवाद, कारण: - [MyViewController चयनकर्ता]: अपरिचित चयनकर्ता'।चयनकर्ता और NSSelectorFromString
[viewController @selector(selector)]
संकलन त्रुटि (त्रुटि: अपेक्षित ':' चयनकर्ता 'से पहले) का कारण बन जाएगा।
जब चयनकर्ता हार्ड कोड किया जाता है, तो सभी अच्छी तरह से काम करते हैं।
मैं किसी ऑब्जेक्ट को किसी चयनकर्ता के माध्यम से संदेश कैसे भेजूं?
-(void) notifyViewControllers:(NSString*) message
{
if(!message) return;
SEL selector = NSSelectorFromString(message);
if(!selector) return;
NSArray* viewControllers = [self.tabBarController viewControllers];
if(!viewControllers) return;
for (UIViewController* viewController in viewControllers)
{
if(!viewController) continue;
if ([viewController respondsToSelector:selector]) {
// [viewController selector];
[viewController action:selector];
}
}
}
धन्यवाद व्लादिमीर। राकेश ने आपको हराया (प्रदर्शन चयनकर्ता) - लेकिन आपका बिल्कुल सही था। – jww