मेरे एप्लिकेशन में एक प्लगइन सिस्टम है जो मेरे उपयोगकर्ताओं को अपने स्वयं के प्लगइन लिखने की अनुमति देता है जो रनटाइम पर लोड हो जाते हैं। आम तौर पर यह ठीक है लेकिन कुछ मामलों में दो प्लगइन्स एक ही पुस्तकालयों का उपयोग करते हैं जो उन दोनों के बीच टकराव का कारण बनेंगे।कोको/उद्देश्य-सी प्लगइन्स टकराव
उदाहरण:
प्लग एक JSON के साथ काम करने के लिए TouchJSON का उपयोग करना चाहता है और इस तरह निर्माता प्लगइन स्रोत के लिए TouchJSON कोड कहते हैं और यह संकलित और प्लगइन बाइनरी में जुड़ा हुआ हो जाता है। बाद में प्लगइन बी भी उसी लाइब्रेरी का उपयोग करना चाहता है और वही करता है। अब जब मेरे ऐप इन दो विभिन्न प्लग इन यह इस का पता लगाता है लोड करता है और इस तरह एक चेतावनी बाहर थूक:
कक्षा CJSONScanner दोनों [path_to_plugin_a] और [path_to_plugin_b] में किया जाता है। दो में से एक का उपयोग किया जाएगा। कौन सा अपरिभाषित है।
चूंकि मेरा ऐप सिर्फ प्लगइन लोड करता है और यह सुनिश्चित करता है कि वे एक निश्चित प्रोटोकॉल के अनुरूप हैं, मेरे पास कोई नियंत्रण नहीं है कि कौन से प्लगइन लोड किए गए हैं और यदि दो या दो से अधिक लाइब्रेरी का उपयोग करते हैं।
जब तक दोनों प्लगइन्स पुस्तकालय की ठीक उसी संस्करण का उपयोग के रूप में यह शायद काम करेंगे लेकिन जैसे ही एक में एपीआई परिवर्तन में समस्या आने पर होगा का एक समूह के रूप में प्लगइन।
क्या मैं इसके बारे में कुछ भी कर सकता हूं?
जैसा मैंने सोचा था। मैं बस सोच रहा हूं कि कोई भी इस समस्या में नहीं चल रहा है जब बहुत सारे मैक ऐप्स हैं जो प्लगइन्स (कोडा, टेक्स्टमैट, एक्सकोड इत्यादि) – hjaltij
@zneak को अनुमति देते हैं, तो क्या आपको फ्रेमवर्क प्रदान न करने के लिए टचजेसन के साथ एक बग रिपोर्ट दर्ज करना है? – hooleyhoop