आपको हमेशा आईओएस संस्करणों के बजाय उपलब्ध विधियों/फीचर का पता लगाना चाहिए और फिर एक विधि मानना चाहिए।
Apple documentation देखें।
उदाहरण के लिए, iOS 5 में एक मॉडल दृश्य नियंत्रक हम कुछ इस तरह करना होगा प्रदर्शित करने के लिए:
[self presentModalViewController:viewController animated:YES];
iOS 6 में, UIViewController
की presentModalViewController:animated:
विधि पदावनत है, तो आप iOS 6 में presentViewController:animated:completion:
का उपयोग करना चाहिए, लेकिन आप कैसे जानते हैं कि कब उपयोग करें?
आप आईओएस संस्करण का पता लगा सकते हैं और अगर आप पूर्व या बाद में उपयोग करते हैं तो एक कथन कथन है, लेकिन यह नाजुक है, आप एक गलती करेंगे, शायद भविष्य में एक नया ओएस ऐसा करने का एक नया तरीका होगा ।
इस संभाल करने के लिए सही तरीका है:
if([self respondsToSelector:@selector(presentViewController:animated:completion:)])
[self presentViewController:viewController animated:YES completion:^{/* done */}];
else
[self presentModalViewController:viewController animated:YES];
तुम भी तर्क है कि आप और अधिक सख्त होना चाहिए और की तरह कुछ कर सकता है:
if([self respondsToSelector:@selector(presentViewController:animated:completion:)])
[self presentViewController:viewController animated:YES completion:^{/* done */}];
else if([self respondsToSelector:@selector(presentViewController:animated:)])
[self presentModalViewController:viewController animated:YES];
else
NSLog(@"Oooops, what system is this !!! - should never see this !");
मैं अपने UIActionSheet
उदाहरण के बारे में अनिश्चित हूँ, जहां तक मुझे पता है कि यह आईओएस 5 और 6 पर समान है। हो सकता है कि आप UIActivityViewController
साझा करने के लिए सोच रहे हों और यदि आप आईओएस 5 पर हैं तो आप UIActionSheet
पर फ़ॉलबैक करना चाहेंगे, तो हो सकता है कि आप कक्षा की जांच कर सकें उपलब्ध,देखें 0 ऐसा कैसे करें।
मदद के लिए धन्यवाद! एक बहुत बड़ा जवाब! –
about.me प्रशंसाओं के लिए एक खुशी और धन्यवाद – Daniel
आप प्रोजेक्ट सेटिंग्स में ढांचे से लिंक कर सकते हैं, इस तरह के मामले में कि फ्रेमवर्क सभी संस्करणों पर मौजूद नहीं हो सकता है, जैसे कि आपके मामले में, आप बस वैकल्पिक होने के लिए सेट करते हैं बल्कि आवश्यक है। ---- सवाल हटा दिया गया था .... प्रश्न/टिप्पणी। – Daniel