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