2012-04-18 12 views
10

मैं आईओएस प्रोग्रामिंग का अध्ययन कर रहा हूं।मैं CFRelease का उपयोग कब करूं?

मैंने एक कोड से जुड़े कोड को लिखा था।

इतने सारे तरीके हैं। जैसे

मैं एक समूह को विभाजित कर रहा हूं।

यहाँ GROUP1

ABAddressBookCreate(); 
ABRecordCopyCompositeName(argument); 
ABRecordCopyValue(argument1, argument2); 
ABRecordCopyValue(argument1, argument2); 
ABMultiValueCopyLabelAtIndex(argument1, argument2); 
ABMultiValueCopyValueAtIndex(argument1, argument2); 

है और एक दूसरे से यहीं है, समूह 2

CFArrayGetCount(argument); 
CFArrayGetValueAtIndex(argument1, argument2); 
ABMultiValueGetCount(argument); 

मैं वहाँ बहुत से अन्य तरीकों से जानते हैं।

लेकिन मुझे आश्चर्य है कि जब मैं CFRelease विधि का उपयोग करता हूं।

मुझे लगता है कि समूह 2 के सभी तरीकों CFRelease

ऐसा नहीं करते हैं, क्योंकि वह शब्द "जाओ", आवंटित नहीं होते हैं।

और मुझे लगता है कि GROUP1 के सभी विधि है, क्योंकि वहां एक स्ट्रिंग "कॉपी" CFRelease

उपयोग करना होगा।

मेरे पास एक पुस्तक है।

लेकिन दो बार CFRelease का उपयोग किया जाता है।

एक रिलीज ABAddressBookCreate()

एक और एक ABAddressBookCopyPeopleWithName है।

अन्य सभी चीजें CFRelease का उपयोग नहीं करती हैं।

इसलिए मुझे आश्चर्य है कि जब मैं CFRelease का उपयोग करता हूं।

कृपया मुझे बताएं जब मैं CFRelease का उपयोग करता हूं।

उत्तर

9

समारोह नाम "कॉपी" या मौजूद होता है तो पर

देखो "बनाएँ", तो आप वस्तु के मालिक हैं, तो आप इसे जारी करना चाहिए जब आप इसे के साथ अपने काम खत्म। इसे "निर्माण नियम" कहा जाता है। कोर फाउंडेशन के लिए मेमोरी प्रबंधन के बारे में अधिक जानकारी के लिए, आप Memory Management Programming Guide for Core Foundation

+0

देख सकते हैं हे मुझे एक ही समस्या है। मैं शायद कुछ कोर फाउंडेशन ऑब्जेक्ट को गलत तरीके से रिलीज़ कर रहा हूं। मैं पूछना चाहता हूं कि मैं प्रत्येक ऑब्जेक्ट के लिए बनाए रखने की गिनती कैसे डिबग कर सकता हूं और यह सुनिश्चित कर सकता हूं कि मैं इसे रिलीज़ कर सकता हूं। – Sosily

+1

स्थैतिक विश्लेषक चलाएं और प्रत्येक प्रतिलिपि बनाई गई, बनाए गए या बनाए गए ऑब्जेक्ट को ठीक से जारी किए जाने पर जांचें। – graver

+0

धन्यवाद आदमी! अब ठिक है! – Sosily

3

जब भी आप कोर फाउंडेशन ऑब्जेक्ट बनाते हैं या इसके मालिक बन जाते हैं तो आप CFRelease पर कॉल करेंगे। CFMemory management प्रलेखन

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