यदि मैं इस ^{ DoSomething; }
जैसे ब्लॉक की घोषणा करता हूं और इसे एक आवृत्ति चर में डालता हूं, तो क्या मुझे इसे Block_copy()
की आवश्यकता है यदि मैं इसे चारों ओर रखने जा रहा हूं?उद्देश्य-सी ब्लॉक autoreleased हैं?
उत्तर
हां, आपको प्रतिलिपि बनाने की आवश्यकता है। ऐसा इसलिए नहीं है क्योंकि वे ऑटोरेलेज्ड हैं, लेकिन क्योंकि वे ढेर पर शुरू होते हैं। ध्यान दें कि ब्लॉक भी है ताकि आप उन्हें नियमित copy
संदेश का उपयोग कर कॉपी कर सकते हैं, नियमित रूप से ऑब्जेक्टिव-सी वस्तुओं की तरह व्यवहार करते हैं:
void storeBlockForLater: (dispatch_block_t) block
{
[someArray addObject:[[block copy] autorelease]];
}
या, यदि आप एक ब्लॉक संपत्ति है:
@property(copy) dispatch_block_t block;
बनाए रखने की नहीं है यहां मदद करें
धन्यवाद, मुझे इस विषय पर भी इस महान लेख को मिला: http://cocoawithlove.com/2009 /10/how-blocks-are-implemented-and.html – brian
युप; और यदि आप 'प्रतिलिपि' का उपयोग करते हैं, तो 'रिलीज' का उपयोग करें। यदि आप 'ब्लॉक_copy() 'का उपयोग करते हैं, तो' block_release()' का उपयोग करें। मिश्रण मत करो। – bbum
@bbum क्या यह 'block_copy()' और 'autorelease' का उपयोग सुरक्षित है? क्या आपको 'प्रतिलिपि' का उपयोग केवल 'प्रतिलिपि' के साथ करना चाहिए? –
- 1. रिटर्निंग autoreleased एआरसी
- 2. रूबी ब्लॉक और ब्लॉक
- 3. पायथन सॉकेट ब्लॉक स्वीकार करते हैं -
- 4. Magento स्थिर सीएमएस ब्लॉक कहाँ संग्रहीत हैं?
- 5. एकाधिक स्थान ब्लॉक कैसे हैं @location
- 6. Google Analytics, दो स्क्रिप्ट ब्लॉक क्यों हैं?
- 7. ब्लॉक
- 8. कोड के दो लगातार ब्लॉक क्या हैं {} {} करते हैं?
- 9. ब्लॉक
- 10. ब्लॉक
- 11. ब्लॉक
- 12. ब्लॉक
- 13. ब्लॉक
- 14. हास्केल जहां एक ब्लॉक ब्लॉक
- 15. रूबी: ब्लॉक से उपज ब्लॉक?
- 16. हम इसका उपयोग क्यों करते हैं, अन्यथा अगर ब्लॉक के लिए एकाधिक ब्लॉक के बजाय यदि ब्लॉक एक रिटर्न स्टेटमेंट
- 17. अन्य केस ब्लॉक में उपलब्ध केस ब्लॉक में चर परिभाषित क्यों हैं?
- 18. यदि ब्लॉक बनाम स्विच-केस ब्लॉक
- 19. कैच ब्लॉक
- 20. इनलाइन-ब्लॉक
- 21. ब्लॉक startActivity
- 22. डॉक ब्लॉक
- 23. एचटीएमएल ब्लॉक
- 24. ब्रेस/ब्लॉक
- 25. क्या एक स्क्रिप्ट ब्लॉक या एकाधिक ब्लॉक
- 26. ड्रूपल - ब्लॉक
- 27. क्लैंग ब्लॉक?
- 28. कैच ब्लॉक
- 29. ब्लॉक स्कोप
- 30. रूबी ब्लॉक
नोट .. एआरसी के लिए, कुछ उदाहरण कोड यहां है: http://stackoverflow.com/a/20760583/294884 – Fattie