जो मैंने अभी तक सीखा है: उद्देश्य-सी में आप किसी ऑब्जेक्ट को कोई संदेश भेज सकते हैं। यदि वस्तु सही तरीके को लागू करती है तो इसे निष्पादित किया जाएगा अन्यथा कुछ भी नहीं होगा। ऐसा इसलिए है क्योंकि संदेश भेजने से पहले उद्देश्य-सी प्रदर्शन करेगा प्रतिसाद देता है ToSelector।उद्देश्य-सी प्रतिक्रियाएं चयनकर्ता
मुझे उम्मीद है कि मैं अभी तक सही हूं।
मैंने परीक्षण के लिए एक छोटा सा कार्यक्रम किया जहां स्लाइडर स्थानांतरित होने पर हर बार कार्रवाई की जाती है। परीक्षण के लिए मैंने प्रेषक को एनएसबटन पर सेट किया लेकिन वास्तव में यह एक एनएसएसएलडर है। अब मैंने ऑब्जेक्ट से पूछा कि क्या यह setAlternateTitle का जवाब देगा। जबकि एक NSButton करेगा और NSSlider नहीं होगा। अगर मैं कोड चलाता हूं और प्रतिसाद देता हूं तो चयनकर्ता स्वयं यह मुझे बताएगा कि ऑब्जेक्ट उस चयनकर्ता का जवाब नहीं देगा। अगर मैं intValue जैसे कुछ और परीक्षण करता हूं, तो यह जवाब देगा। तो मेरा कोड अभी तक ठीक है।
- (IBAction)sliderDidMove:(id)sender
{
NSButton *slider = sender;
BOOL responds =
[slider respondsToSelector:@selector(setAlternateTitle)];
if(responds == YES)
{
NSLog(@"YES");
}
else
{
NSLog(@"NO");
}
[slider setAlternateTitle:@"Hello World"];
}
लेकिन जब मैं वास्तव में सेटअल्टरनेट टाइटल संदेश भेजता हूं तो प्रोग्राम क्रैश हो जाएगा और मुझे बिल्कुल यकीन नहीं है कि क्यों। संदेश भेजने से पहले यह जवाब नहीं देना चाहिए?
+1। क्या आप कुछ लिंक प्रदान कर सकते हैं जहां यह पूरी प्रक्रिया विस्तार से दस्तावेज की गई है। यह पढ़ने लायक है। – taskinoor
दस्तावेज़ यहां हैं: http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/ObjCRuntimeGuide/Introduction/Introduction.html भाग में ... अन्य सामान NSObject क्लास संदर्भ – Psycho
रास्ते में हैं , 'अग्रेषण लक्ष्यीकरण चयनकर्ता:' केवल मैक ओएस एक्स 10.6+ या आईओएस 4+ – user102008