मेरे पास एक स्विफ्ट फ्रेमवर्क है जिसे कोकोपोड्स के माध्यम से प्रबंधित किया जाता है और इसमें एक एक्सटेंशन होता है:
public extension UIImage {
public static func maskedImageWithColor( color: UIColor, forImageNamed image: UIImage) {
// Implementation
}
}
जब मैं इसे अपने मुख्य अनुप्रयोग में उद्देश्य सी में लिखता हूं तो मुझे कोई कंपाइलर त्रुटियां या चेतावनियां नहीं मिलतीं।
// No problems here!
[UIImage maskedImageWithColor:UIColor.blackColor() forImageNamed:@"myImage"];
जब मैं ऐप चलाता हूं, हालांकि, यह "अपरिचित चयनकर्ता" त्रुटियों की गड़बड़ी में विस्फोट करता है।
अजीब चीज है, जब ढांचे में निहित है अंदर प्रोजेक्ट और बिल्ड चरणों के प्रासंगिक हिस्सों में सीधे जोड़ा गया (यानी कोकोपोड्स द्वारा प्रबंधित नहीं किया गया), यह सभी अपेक्षित काम करता है।
फ्रेमवर्क-कक्षाओं, enums, आदि के अन्य पहलुओं- सभी ठीक काम भी करते हैं, यह सिर्फ एक्सटेंशन और प्रतीत होता है जब वे "कोकोपोड्स द्वारा प्रबंधित एक ढांचे में हैं।
मैं यहां क्या खो सकता हूं पर कोई विचार?
उत्तर:
जवाब के लिए 0 № 1ऐसा इसलिए है क्योंकि लिंकर श्रेणी विधियों को डिफ़ॉल्ट रूप से स्थैतिक लाइब्रेरी रूप से लोड नहीं कर रहा है। यदि आप स्थैतिक पुस्तकालय के साथ श्रेणी विधियों (तेजी से विस्तार) जोड़ रहे हैं, तो जोड़ें -ObjC
अपने लक्ष्य में अन्य लिंकर झंडे के लिए सेटिंग्स का निर्माण।
और पढो यहाँ