मैं भर में आया था निम्नलिखित:@ [obj1, obj2] किस तरह की ऑब्जेक्ट बनाता है?
NSArray *array = @[object1, object2];
यह एक NSArray
बनाने जा रहा है, लेकिन इस सरणी उदाहरण एक autoreleased वस्तु है, या मैं इसे जारी करना चाहिए?
मैं भर में आया था निम्नलिखित:@ [obj1, obj2] किस तरह की ऑब्जेक्ट बनाता है?
NSArray *array = @[object1, object2];
यह एक NSArray
बनाने जा रहा है, लेकिन इस सरणी उदाहरण एक autoreleased वस्तु है, या मैं इसे जारी करना चाहिए?
यह है
[NSArray arrayWithObjects:object1, object2, nil];
के बराबर तो हाँ, यह एक autoreleased वस्तु अगर आप की जरूरत है, एक नया संग्रह शाब्दिक संकलक कि xcode 4.4 के साथ और
@[object1, object2];
ऊपर जहाज में उपलब्ध है इसे बनाए रखने के लिए, आप
myRetainedArray = [@[object1, object2] retain];
this question पर जा सकते हैं सभी नए अक्षरों का ओडी विवरण
यह एक सरणी बनाने के लिए नया llvm कंपाइलर का शाब्दिक है। कंपाइलर इसे बदलता है:
NSArray *array = [NSArray arrayWithObjects: object1,object2,nil];
तो यह एक ऑटोरेलेज्ड ऑब्जेक्ट लौट रहा है।
एक गूगल खोज पाला अधिक जानकारी:
"कंपाइलर इसे इसमें बदलता है:" नहीं, यह 'arrayWithObjects: count: 'का उपयोग करने के लिए इसे बदलता है। – user102008
और आदमी यह भयानक नहीं है! मेरे कोड lol –
में कुछ बैंगनी की आवश्यकता है यदि मुझे ऑटोरेलीज ऑब्जेक्ट बनाने की आवश्यकता नहीं है, तो ऊपर से उपयोग नहीं कर सकते हैं? –
आप अभी भी इसका उपयोग कर सकते हैं, केवल बाद में सरणी को बनाए रखें – wattson12