2011-12-07 8 views
6

जब मैं आईओएस 4.3.x पर @autorelease कीवर्ड का उपयोग कर कोड चलाता हूं तो यह त्रुटि फेंकता है।@autoreleasepool का उपयोग करने के लिए आईओएस संस्करण की आवश्यकता है?

dyld: lazy symbol binding failed: Symbol not found: _objc_autoreleasePoolPush 
    Referenced from: /Users/Eonil/Library/Application Support/iPhone Simulator/4.3.2/Applications/3782382E-293A-4D5E-86E6-28BE35CF6048/EonilCocoaComplementsTester.app/EonilCocoaComplementsTester 
    Expected in: /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.3.sdk/System/Library/Frameworks/Foundation.framework/Foundation 

dyld: Symbol not found: _objc_autoreleasePoolPush 
    Referenced from: /Users/Eonil/Library/Application Support/iPhone Simulator/4.3.2/Applications/3782382E-293A-4D5E-86E6-28BE35CF6048/EonilCocoaComplementsTester.app/EonilCocoaComplementsTester 
    Expected in: /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.3.sdk/System/Library/Frameworks/Foundation.framework/Foundation 

मैंने सोचा कि कीवर्ड स्पष्ट ऑटोरेलीज-पूल निर्माण/हटाना का प्रतिस्थापन है। वैसे भी यह नहीं था, और एक त्रुटि फेंक दिया। क्या यह केवल आईओएस के विशिष्ट संस्करण में समर्थित है? तो मैं इस कीवर्ड के बारे में संस्करण जानकारी कहां देख सकता हूं?

+1

यह सहायक http://stackoverflow.com/questions/8069570/autoreleasepool-make-errors – RolandasR

उत्तर

4

क्या आप @autoreleasepool का जिक्र कर रहे हैं?

यदि आप एक्सकोड 4.2 और आईओएस 5 एसडीके का उपयोग कर रहे हैं तो आप आईओएस 4.3.x के निर्माण लक्ष्य के साथ @autoreleasepool का उपयोग कर सकते हैं। transitioning to ARC guidelines के बावजूद कि "एआरसी @autoreleasepool में ऑब्जेक्टिव-सी व्याकरण के लिए एक बयान निर्माण प्रस्तुत करता है, जो सुझाव दे सकता है कि एआरसी की आवश्यकता है, यह कहता है," यह वाक्यविन्यास सभी उद्देश्य-सी मोड में उपलब्ध है। "

जबकि मुझे नहीं लगता कि यह विशेष रूप से स्पष्ट दस्तावेज़ीकरण है, इसका मतलब यह है कि आप एओसी के साथ और बिना दोनों @autoreleasepool वाक्यविन्यास का उपयोग कर सकते हैं-यदि आप आईओएस 5 एसडीके का उपयोग कर रहे हैं।

+0

@autoreleasepool एआरसी की आवश्यकता नहीं है हो सकता है। देखें .. http://stackoverflow.com/q/7950583/927947 – NJones

+0

आह दिलचस्प, इसे सही करने के लिए मेरा उत्तर अपडेट किया गया है और लिंक किए गए दस्तावेज़ों के प्रमुख हिस्सों को हाइलाइट करने के लिए जो पहले पढ़ने पर गलत व्याख्या की जा सकती है ... जैसा मैंने किया । :) –

3

बस का परीक्षण किया @autoreleasepool {} पहली पीढ़ी के iPhone चल iOS3.0 पर - समस्या के बिना काम करता

+0

यह सच है, बस मेरे आईफोन 3 जी आईओएस 3.1.3 पर कोशिश की, कोई समस्या नहीं – JomanJi

3

सिम्युलेटर में एक बग होने के लिए लगता है।

तैनाती लक्ष्य 4.2.1 के बजाय 4.2 पर सेट करना मेरे लिए काम करता है।

enter image description here

+0

मेरे पास एक ही समस्या थी और यह मेरे लिए यह भी हल किया गया – wasabi

+0

यह मेरे लिए काम करता था। उस के लिए +1 :) – pahan

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