उद्देश्य-सी गतिशील बाध्यकारी का उपयोग करता है: यह विधि कॉल रनटाइम पर हल हो जाती है।गतिशील बाध्यकारी झूठ की तरह लगता है
ठीक है।
और use of dot notation really boils down to a method call
लेकिन, क्यों तो, मैं कुछ इस तरह नहीं कर सकते:
#import <Foundation/Foundation.h> int main (int argc, const char * argv[]) { NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init]; // Intercept the exception @try { @throw [ NSException exceptionWithName:@"Exception named ME!" reason:@"Because i wanted to" userInfo:nil ] ; } @catch(id exc) // pointer to an exception object? { //NSLog(@"%@ : %@\n", exc.name, exc.reason) ; // ILLEGAL: Request for member // 'name' in something not a structure or union.. // If objective-c uses dynamic binding, and dot notation // boils down to calling the getter, then // WHY do I have to cast to the concrete type here? // Only works if I cast to the concrete type NSException* NSException* nexc = (NSException*)exc ; NSLog(@"%@ : %@\n", nexc.name, nexc.reason) ; } [pool drain]; return 0; }
जब मैंने सुना है "बंधन गतिशील" मैं "सोच रहा हूँ तो यह एक तरह से व्यवहार करना चाहिए स्क्रिप्टिंग भाषा ", और मुझे हैरान है कि कैसे लचीला उद्देश्य-सी जावास्क्रिप्ट जैसी एक स्क्रिप्टिंग भाषा की तुलना में लगता है।
आप केक के साथ गतिशील बाध्यकारी उलझन में हैं। यह एक झूठा वायदा है। –
_ "रनटाइम पर विधि कॉल का समाधान किया गया है" _ को वास्तव में _ "संदेश प्रेषण रनटाइम पर होता है" _। पूरा _dot ऑपरेटर_ उपयोग किसी और चीज़ की तुलना में हैक से अधिक है। –
इसके बारे में कुछ भी हैकिश नहीं है; यह एक अतिरिक्त कॉल के साथ एक विधि कॉल के लिए एक बहुत अच्छी तरह से परिभाषित समानार्थी है कि प्रकार अच्छी तरह से जाना जाना चाहिए। (चाहे कोई डॉट पसंद करता हो या सोचता है कि यह एक अच्छा जोड़ा है पूरी तरह राय है - कोई टिप्पणी नहीं :)। – bbum