2012-05-28 7 views
18

क्या एक्सकोड मुझे बताए जाने का कोई तरीका है जब मैं एक ऐसी विधि को कॉल कर रहा हूं जो न्यूनतम समर्थित लक्ष्य के एसडीके में उपलब्ध नहीं है?आईओएस एक्सकोड: न्यूनतम लक्ष्य में नहीं तरीकों के बारे में चेतावनी एसडीके

उदाहरण के लिए, विधि [NSURLConnection sendAsynchronousRequest: queue: completHandler:]। यह विधि आईओएस 5 और ऊपर उपलब्ध है। लेकिन मेरे आवेदन का न्यूनतम लक्ष्य आईओएस 4 है।

यदि मैं उस विधि (sendAsync) का उपयोग करता हूं, तो मैं एक्सकोड को यह बताना चाहता हूं कि वह विधि न्यूनतम लक्ष्य के लिए उपलब्ध नहीं है जिसे मैं समर्थन देने का प्रयास कर रहा हूं।

मैंने प्रीप्रोसेसर सेटिंग्स में __IPHONE_OS_VERSION_MAX_ALLOWED = 40000 डालने का प्रयास किया है, लेकिन यह केवल ऐप्पल एसडीके त्रुटियों का एक गुच्छा ट्रिगर करता है जो सहायक नहीं हैं। (शायद क्योंकि मेरा सक्रिय एसडीके आईओएस 5.1 है)

पुराने एसडीके को पकड़ने और उन्हें एक्सकोड में स्थापित करने का एकमात्र समाधान है?

क्या कोई आसान समाधान है?

+0

मुझे यकीन नहीं है कि क्या मैं प्रश्न समझता हूं। यदि आप पुराने संस्करण को लक्षित करते हैं तो भी आप हमेशा नवीनतम एसडीके का उपयोग करते हैं।वास्तव में, यदि आप नवीनतम एसडीके का उपयोग नहीं करते हैं तो ऐप्पल ऐप स्टोर में आपके ऐप को स्वीकार नहीं करेगा। लेकिन जब तक आप केवल लक्ष्य संस्करण के लिए उपलब्ध एपीआई के सबसेट का उपयोग करते हैं, तो आप सुनहरे होते हैं। –

+0

सही, लेकिन अगर ऐसे लोग हैं जो आईओएस 4 पर ऐप इंस्टॉल कर रहे हैं, तो मुझे यह सुनिश्चित करना होगा कि मैं किसी भी आईओएस 5 + एपीआई का उपयोग नहीं करता हूं। तो मैं कोड की हर पंक्ति को देखने के बजाय xcode मुझे चेतावनी देने का एक तरीका ढूंढ रहा हूं और दोबारा जांच करता हूं कि यह आईओएस 4 सुरक्षित है। – gngrwzrd

+0

शायद [यह ऐप्पल टेकडोक] (http://developer.apple.com/library/mac/#documentation/DeveloperTools/Conceptual/cross_development/Configuring/configuring.html#//apple_ref/doc/uid/10000163i-CH1-SW2) शायद मदद की? –

उत्तर

5

कुछ शोध करने के बाद, Apple Doc को इसके बारे में पढ़ना, और कई चीजों की कोशिश करना। समाधान ऐप्पल से पुराना एक्सकोड डीएमजी डाउनलोड कर रहा है, उसी तैनाती लक्ष्य के रूप में एक ही एसडीके के लिए .pkg फ़ाइल को पकड़ें और इसे एक्सकोड के अपने संस्करण में इंस्टॉल करें।

  1. डाउनलोड बड़े Xcode.dmg एप्पल से
  2. ओपन डीएमजी
  3. टर्मिनल में, संकुल में जाने: यहां तरीका देखें: "। सीडी/खंड/[डीएमजी]/संकुल, खुले"
  4. एसडीके आप चाहते हैं, iPhoneSDK_4.0.pkg
  5. की तरह कुछ
  6. कि पैकेज को स्थापित करें, लेकिन करने के लिए/अनुप्रयोग/Xcode/सामग्री/डेवलपर
  7. पुनः प्रारंभ Xcode स्थापित निर्देशिका बदलने अगर यह खुला था।

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

6

दुर्भाग्यवश ऐसा करने का कोई मानक तरीका नहीं है। बेस एसडीके की तुलना में लक्ष्य ओएस को कम संख्या में सेट करके, एक्सकोड कमजोर पुस्तकालयों और ढांचे को लिंक करेगा। उस एक्सकोड को करने पर आपको उन विधियों का उपयोग करने की चेतावनी नहीं दी जाएगी जो लक्ष्य ओएस पर उपलब्ध नहीं हो सकते हैं।

आप अस्थायी रूप से बेस एसडीके को कम सेट कर सकते हैं, लेकिन यह हमेशा काम नहीं कर सकता है। चूंकि आप उत्पादित अधिकांश त्रुटियों और चेतावनियों को अनदेखा करना चाहते हैं (क्योंकि उन्हें केवल आपके कोड पथ में सशर्त रूप से कहा जाता है), और कई चेतावनियां और त्रुटियां अन्य त्रुटि पर निर्भर होती हैं जिन्हें संकलक को कोई सार्थक आउटपुट देने से पहले आपको हल करने की आवश्यकता हो सकती है।

मुझे नहीं लगता कि इसके लिए कोई स्थिर विश्लेषण उपकरण मौजूद नहीं है, न तो ऐप्पल और न ही तीसरे पक्ष से।

+0

सहमत हुए, मुझे वही चीज़ मिली। – gngrwzrd

0

एक्सकोड 7.3 के रूप में, कंपाइलर अब आपके लिए ये चेतावनियां उत्पन्न कर सकता है। आपको this answer में वर्णित अनुसार, बिल्ड सेटिंग्स में -Wpartial-availability चेतावनी ध्वज सेट करने की आवश्यकता है।

संबंधित मुद्दे

 संबंधित मुद्दे