द्वारा परिवर्तित किया गया है क्योंकि उद्देश्य-सी एक सी सुपरसेट है, सभी उद्देश्य-सी विशिष्ट विवरणों को एक .m फ़ाइल के संकलन के दौरान सी कथन में परिवर्तित किया जाता है (द्वारा प्रीप्रोसेसर, मुझे लगता है)। इसलिए, उदाहरण के लिए, [receiver method]
जैसे संदेश अभिव्यक्ति को संदेश फ़ंक्शन objc_msgSend(receiver, selector)
पर कॉल में परिवर्तित कर दिया गया है।उद्देश्य-सी 2.0 वर्ग इंटरफ़ेस और कार्यान्वयन जीसीसी या क्लैंग
मेरा प्रश्न है:
@interface ClassA {
int var1;
float var2;
id var3;
}
-(void) method1;
-(int) method2: (int) num1;
@end
@implementation ClassA
-(void) method1 {
// Implementation of the method
}
-(int) method2: (int) num1 {
// Implementation of the method
}
@end
क्या यह संकलक द्वारा में बदल (ऑब्जेक्टिव-सी के 2.0 संस्करण में) है: अगर मैं इस तरह एक वर्ग परिभाषा है? क्या यह कक्षा बनाने के लिए objc_allocateClassPair()
, class_addIvar()
, class_addMethod()
और objc_registerClassPair()
जैसे कार्यों पर कॉल में परिवर्तित हो गया है, इसके इंस्टेंस वेरिएबल जोड़ें, इसके तरीके जोड़ें और क्रमशः कक्षा पंजीकृत करें (ताकि क्लास स्ट्रक्चर को वास्तव में रनटाइम में परिभाषित किया जा सके निष्पादन योग्य फ़ाइल से एक संरचना के रूप में लोड किया जा रहा है)?