ObjectiveCName व्याख्या
उस तरीके के अनुवाद किए गए नाम और उसे ओवरराइड करने वाले किसी भी तरीके को बदलने के लिए, आपके पास @ObjectiveCName के साथ किसी भी Java तरीके की व्याख्या करने का विकल्प होता है. उदाहरण के लिए:
@ObjectiveCName("setTimeWithHours:minutes:seconds:")
public void setTime(int hours, int minutes, int seconds) {
...
}
का अनुवाद इस रूप में किया जाता है:
- (void)setTimeWithHours:(jint)hours
minutes:(jint)minutes
seconds:(jint)seconds;
फ़ाइल मैप करना
तरीके के नाम --मैपिंग फ़्लैग का इस्तेमाल करके बदले जा सकते हैं, जो इस्तेमाल करने के लिए मैपिंग वाली प्रॉपर्टी फ़ाइल लेता है. हर मेथड मैपिंग में, कुंजी के लिए पूरे Java मेथड सिग्नेचर और ऑब्जेक्टिव-सी सिलेक्टर की वैल्यू दी गई होती है. उदाहरण के लिए, Object.equals() को NSObject.isEqual से मैप करने की लाइन: is:
java.lang.Object.equals(Ljava/lang/Object;)Z = isEqual:
बाईं ओर दिया गया एलान, पूरे मेथड का सिग्नेचर है, जैसा कि Java वर्चुअल मशीन के स्पेसिफ़िकेशन में बताए गए हैं. दाएं हाथ की परिभाषा में iOS सिलेक्टर (यानी कि @selector() को भेजा जाने वाला डेटा) होता है. तरीका और इसकी मैपिंग में पैरामीटर की संख्या बराबर होनी चाहिए.
दूसरे उदाहरण के तौर पर, यह लाइन पिछले सेक्शन में दिए गए उदाहरण की तरह है:
pkg.ClassName.setTime(III)V = setTimeWithHours:minutes:seconds:
--mapping विकल्प का इस्तेमाल करके, कमांड-लाइन पर अतिरिक्त मैपिंग फ़ाइलों को तय किया जा सकता है.