में पैराम के रूप में मैं अन्य साथी डेवलपर्स द्वारा उपयोग किए जाने वाले उद्देश्य सी ढांचे का विकास कर रहा हूं।वैकल्पिक निर्भरता के तर्कों को पारित करने के लिए कैसे उद्देश्य सी फ्रेमवर्क फ़ंक्शन
इस ढांचे में मैं वैकल्पिक रूप से उपलब्ध होने पर वैकल्पिक रूप से अन्य ढांचे से उपलब्ध कक्षाओं का उपयोग करना चाहूंगा।
उदाहरण के लिए, इस समय मैं AdSupport.framework उपयोग कर रहा हूँ (यदि उपलब्ध है - एप्लिकेशन डेवलपर से जुड़े हुए) पर निम्न दृष्टिकोण के साथ:
if (NSClassFromString(@"ASIdentifierManager")) {
NSString adString = [[[NSClassFromString(@"ASIdentifierManager") sharedManager] advertisingIdentifier] UUIDString];
}
अब हालांकि, मैं सार्वजनिक कार्यों के तर्कों करना चाहते हैं वैकल्पिक ढांचे के वर्गों को शामिल करने के लिए मेरे ढांचे का और मैं ऐसा करने में सक्षम नहीं हूं।
उदाहरण के लिए:
मैं एक समारोह करना चाहते हैं:
+ (void) sendLocation: (CLLocation *) myLoc;
लेकिन CoreLocation.framework वैकल्पिक रूप से लिंक किया जाएगा और हो सकता है एक एप्लिकेशन के लिए उपलब्ध नहीं। मैं उपरोक्त AdSupport.framework के साथ एक समान दृष्टिकोण का अनुसरण कैसे कर सकता हूं?
मुझे लगता है मैं कुछ इस तरह कर सकता है ग्रहण किया:
+ (void) sendLocation: (NSClassFromString(@"CLLocation") *) myLoc;
या
+ (void) sendLocation: (id) myLoc;
या
+ (void) sendLocation: (Class) myLoc;
और उसके बाद किसी भी तरह निकालने का समन्वय करता है लेकिन यह है कि प्राप्त करने के लिए सक्षम नहीं था। अंतिम विकल्प (कक्षा) संकलित प्रतीत होता है लेकिन मुझे पैराम निकालने का कोई तरीका नहीं मिल रहा है ..
क्या कोई इससे मदद कर सकता है?