2013-06-15 9 views
7

का उपयोग कर मैवरिक्स बाहर आ रहा है और डेवलपर्स के लिए जो हमेशा इन सभी नई सुविधाओं और एपीआई के बारे में जानने और उपयोग करने में व्यस्त समय रहता है। मेरे लिए, मुझे लगता है कि यह एक सवाल पूछने का सही समय है जो मुझे बहुत लंबे समय तक परेशान कर रहा है।10.8+ के लिए ऐप का विकास करना, लेकिन 10.9 एसडीके

यहां बात है, संदर्भ में: मैं एक ऐप विकसित कर रहा हूं जिसे मैं 10.8 पर चलाने में सक्षम होना चाहता हूं (इसलिए लक्ष्य प्रणाली 10.8+ है)। अभी मैं 10.8 एसडीके का उपयोग कर रहा हूं। हालांकि, 10.9 के रिलीज के साथ कुछ सुंदर मीठे एपीआई आती हैं जिन्हें मैं अपने ऐप में उपयोग करना चाहता हूं। मैं उन्हें अपने कोड में उपयोग करता हूं, लेकिन फिर, निश्चित रूप से, मुझे 10.9 एसडीके के खिलाफ अपना ऐप संकलित करना होगा। अगर मैं ऐसा करता हूं, क्या मैं अभी भी ऐप को 10.8 पर चला सकता हूं?

या, यदि मैं एक एसडीके के खिलाफ अपना ऐप संकलित करता हूं, तो क्या मैं इसे अभी भी 'लोअर' मैक ओएस पर चला सकता हूं? यदि हां, तो क्या आप समझ सकते हैं कि यह हुड के तहत कैसे काम करता है (कंपाइलर क्या कर रहा है)? यह मेरे लिए एक मिस्टर है।

उत्तर

5

आम तौर पर, एक्सकोड एसडीके के मुद्दे और ऐप के परिनियोजन लक्ष्य को अलग करता है।

एसडीके बेस एसडीके से निर्धारित होता है, और तैनाती लक्ष्य ओएस एक्स तैनाती लक्ष्य से निर्धारित होता है। ये दोनों में दिखाए गए हैं Xcode में प्रत्येक लक्ष्य के लिए सेटिंग्स टैब बनाएं।

विभिन्न एसडीके और लक्ष्य के साथ प्रोग्रामिंग करते समय, आप यह सुनिश्चित करने के लिए ज़िम्मेदार हैं कि आप उन ओएस पर विधियों या कार्यों को कॉल नहीं करते हैं जिनके पास नहीं है। यह अक्सर मौजूदा वर्गों और ढांचे पर नए तरीकों के मामले में कमजोर लिंकिंग (नए ढांचे के मामले में) और/या -respondsToSelector: का उपयोग करके सुविधा प्रदान करता है।

+0

लेकिन मुझे लगता है कि विधियों को पेश किया गया है, उदाहरण के लिए, 10.8 में जो 10.7 पर भी उपलब्ध हैं। यदि ओएस के प्रत्येक संस्करण पर विधियां उपलब्ध हैं तो संकलन से पहले मैं कैसे जान सकता हूं? – Alex

+0

यह डेवलपर के लिए एक अभ्यास के रूप में छोड़ दिया गया है। ऐसे कुछ टूल हैं जिन्हें लोगों ने एसडीके संस्करणों की जांच के लिए बंद कर दिया है, हालांकि मुझे इस समय एक उदाहरण ढूंढने में परेशानी हो रही है। आप हमेशा अपने कोड को अन्य एसडीके के साथ पुनः संयोजित करने का प्रयास कर सकते हैं और उत्पन्न होने वाली त्रुटियों को नहीं बना सकते हैं, फिर एसडीके को वापस स्विच करें और उनके चारों ओर काम करें। – gaige

+1

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

1

एक्सकोड में, बिल्ड सेटिंग्स के तहत, लक्ष्य ओएस के लिए एक विकल्प है जहां आप 10.8 चुन सकते हैं। 10.8 एप्लिकेशन आमतौर पर 10.9 के साथ संगत होते हैं इसलिए संकलित एप्लिकेशन दोनों ओएस के साथ काम करेगा।

1

निम्न संस्करण पर चलते समय नए एपिस काम करने की अपेक्षा न करें। यह उस तरह से काम नहीं करता है।

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