/ / आप उद्देश्य-सी से पीओओबीजेसी कोड कैसे कॉल करते हैं? [डुप्लिकेट] - पायथन, उद्देश्य-सी, कोको, पायबजेक

आप उद्देश्य-सी से पीओओबीजेसी कोड कैसे कॉल करते हैं? [डुप्लिकेट] - पायथन, उद्देश्य-सी, कोको, पायबजेक

संभावित डुप्लिकेट:
उद्देश्य-सी से पायथन को कॉल करना

मैं एक लंबे समय से पाइथन प्रोग्रामर और शॉर्ट-टाइम हूंकोको प्रोग्रामर। मैं बस पीओओबीजेसी के साथ शुरू कर रहा हूं और यह वास्तव में आश्चर्यजनक है कि सामान पूरा करना कितना आसान है। उस ने कहा, मैं अपने नियंत्रक के लिए पीओओबीजेसी मॉडल के साथ शुद्ध ओबीजेसी का उपयोग करना चाहता था। मैं पाइथन को पाइथन और उद्देश्य-सी उद्देश्य-सी होने का आनंद ले सकता हूं। मुझे लगा कि यह कोशिश करने लायक था, वैसे भी।

के सिवाय मैं कैसे समझ सकता हूं या कैसे कुछ नहीं ढूंढ सकताउद्देश्य-सी से पाइथन को कॉल करें, केवल दूसरी तरफ। क्या कोई मुझे इस पर किसी भी संसाधन के लिए इंगित कर सकता है? (शायद यह पीओओबीजेसी साइट पर है लेकिन मुझे नहीं पता कि मैं क्या देख रहा हूं?)

संपादित करें: मैं मूल स्तर पर, पाइथन मॉड्यूल को कॉल करने में सक्षम होने और कुछ देशी ओबीजेसी डेटा प्रकारों को वापस पाने में सबसे अधिक दिलचस्पी लेता हूं।

उत्तर:

जवाब के लिए 3 № 1

कई संभावित दृष्टिकोण हैं। सबसे अधिक आकर्षक है अपने python कोड से एक लोड करने योग्य बंडल संकलित करने के लिए py2app का उपयोग करना जिससे आप प्रिंसिपल क्लास का उपयोग कर सकते हैं NSBundle। दुर्भाग्यवश, इस उपयोग के मामले में बहुत कुछ नहीं मिला हैpy2app डेवलपर्स से प्यार, और मैंने 10.5 और 10.6 में कई बग पाई हैं, जिसमें ऑब्जेक्टिव-सी में पाइथन से डेटा पास करते समय बदसूरत स्मृति रिसाव भी शामिल है। मैं thist बिंदु पर py2app का उपयोग करने की अनुशंसा नहीं करता।

दूसरा दृष्टिकोण एम्बेडिंग उलटा है। एक पाइथन कोको ऐप लिखें और स्टार्टअप (यहां तक ​​कि मुख्य () में भी एक बंडल से अपना उद्देश्य-सी कोड लोड करें। यदि आपके पास पहले से ही एक बड़ा उद्देश्य-सी ऐप है, तो इसमें थोड़ा सा काम हो सकता है। एकमात्र नकारात्मक पक्ष, जिसे मैं जानता हूं, यह है कि आप अपने उद्देश्य-सी कोड में जीसी का उपयोग करने में सक्षम नहीं हैं, लेकिन यह वास्तव में पीओओबीजेसी के साथ काम करने में एक सार्वभौमिक सीमा है।

अंत में, आप एक अजगर दुभाषिया को तुरंत चालू कर सकते हैंअपने पाइथन कोड को लोड करने के लिए अपने उद्देश्य-सी कोड में। यह स्पष्ट रूप से अधिक शामिल है, लेकिन यदि आपके पास पहले से ही एक बड़ा उद्देश्य-सी कोडबेस है जिसमें आप अपने पायथन कोड को इंजेक्ट करना चाहते हैं तो सबसे अच्छा विकल्प हो सकता है। एक्सकोड में पायथन-कोकोका एप्लिकेशन टेम्पलेट से main.m फ़ाइल कार्रवाई में इसे देखने के लिए एक अच्छी जगह है।


जवाब के लिए 0 № 2

ओह, मुझे लगता है कि मुझे थोड़ा और खोजना चाहिए:

उद्देश्य-सी से पायथन को कॉल करना