लिंक करने पर एआरसी से संबंधित प्रतीकों को याद किया गया है क्योंकि मैंने एआरसी की पहली बार घोषणा की थी कि यह एक संकलित समय की बात है और आईओएस 4 के साथ संगत होगा। मैंने अपनी परियोजना को सफलतापूर्वक दोबारा काम किया है एक्सकोड 4.2 के स्वचालित रिफैक्टरिंग का उपयोग करके एआरसी को, और आईओएस 5.0 एसडीके के खिलाफ संकलित होने पर, यह ठीक काम करता है। हालांकि, अगर मैं अपने आईओएस के खिलाफ संकलित करने के लिए कोशिश 4.2 एसडीके, यह लिंक समय में विफल रहता है, निम्नलिखित प्रतीक लापता:क्या एआरसी वास्तव में आईओएस 4 में समर्थित है? आईओएस 4.2 एसडीके में समय
- _objc_retainAutoreleaseReturnValue
- _objc_autoreleaseReturnValue
- _objc_storeStrong
- _objc_retain
- _objc_release
- _objc_retainAutoreleasedReturnValue
मैं जाँच की, और इन प्रतीकों 5.0 में मौजूद हैं लेकिन 4.2 नहीं:
iPhoneOS5.0.sdk/usr/lib $ find . -type f|xargs nm|grep -i _objc_retain$
00005ed0 T _objc_retain
000061d0 T _objc_retain
iPhoneOS4.2.sdk/usr/lib $ find . -type f|xargs nm|grep -i _objc_retain$
[... *crickets* ...]
इसका मतलब यह है कि एप्पल झूठ बोला? मैं इसके बजाय मानता हूं कि मैं उलझन में हूं और कुछ गलत कर रहा हूं, लेकिन मैं यह नहीं समझ सकता कि क्या।
यह एआरसी आईओएस 4.3 और उसके बाद पर समर्थित है Xcode 4.2 (4C199 बिल्ड)
मुझे लगता है कि इसे आईओएस 4.3 की आवश्यकता है। – ughoavgfhw
दूसरों के कहने के अलावा, 4.2 एसडीके स्थापित न करें। 5.0 एसडीके का प्रयोग करें। अपना तैनाती लक्ष्य निर्धारित करें। मेरा मतलब यह नहीं है, मेरा मतलब सामान्य रूप से है; पुराने एसडीके का इस्तेमाल नहीं किया जाना चाहिए। –
वाह, मुझे विश्वास नहीं है कि मैं यह जानकर लंबे समय तक चला गया हूं कि नए एसडीके पुराने ओएस संस्करणों के लिए निर्माण कर सकते हैं। यहां मैं ऐप्पल में पागल हो गया हूं कि वे मेरे सभी पुराने एसडीके संस्करणों को हटा रहे हैं:/धन्यवाद! –