2015-03-10 3 views
7

क्या एक्सकोड के कंसोल पर ऑब्जेक्ट्स की बरकरार गिनती को तुरंत लॉग आउट करने का कोई तरीका है? यदि नहीं, तो अगला सबसे अच्छा विकल्प क्या है?स्विफ्ट: ऑब्जेक्ट्स की गिनती बरकरार रखने के लिए कैसे लॉग इन करें?

+5

आप retainCount की आवश्यकता क्यों आशा? –

+0

बस एक शिक्षण उपकरण के रूप में। मैं छात्रों को दिखाना चाहता हूं कि चक्र कितना मजबूत रहता है, और बस पूरी एआरसी चीज के बारे में बात करें। – sirab333

+0

'retainCount' विधि का उपयोग करने से पहले इन्हें पढ़ें। [10 (http://whentouseretaincount.com), [2] (http://stackoverflow.com/questions/4636146/when-to-use-retaincount), [3] (http: //www.friday। com/bbum/2011/12/18/retaincount-is-useless /), [4] (http://stackoverflow.com/questions/5784084/calling-retaincount-cononsidered-harmful), [5 ऐप्पल की retainCount विधि पर स्पष्टीकरण ] (https://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/Protocols/NSObject_Protocol/#//apple_ref/occ/intfm/NSObject/retainCount) –

उत्तर

1

आमतौर पर आप बनाए रखने के लिए उपकरणों का उपयोग करेंगे। लेकिन जैसा कि यहां उत्तर दिया गया है विधि retainCount है।

How to get the reference count of an NSObject?

+2

स्विफ्ट में 'retainCount' कोई अच्छा नहीं है। और अन्यथा - "विशेष विचारधारा" के तहत दस्तावेज़ों को देखें: "यह विधि स्मृति प्रबंधन समस्याओं को डीबग करने में कोई मूल्य नहीं है। क्योंकि किसी भी प्रकार की ढांचे के ऑब्जेक्ट्स ने संदर्भ को रखने के लिए किसी ऑब्जेक्ट को बनाए रखा हो सकता है ..." कैसे होगा आप इसे उपकरण में करते हैं? – sirab333

+0

बनाए रखने की अपेक्षा न करें काउंटर आपको सटीक मान देता है। मेरे टिप्पणी (प्रश्न अनुभाग) से जुड़े लिंक का संदर्भ लें –

15

CFGetRetainCount का उपयोग कर समारोह

उदाहरण:

print(CFGetRetainCount(object)) 

यहां अधिक पढ़ें: https://developer.apple.com/reference/corefoundation/1521288-cfgetretaincount

उपयोगी

+0

यह भी ध्यान दें कि स्विफ्ट में, 'CFRetainCount' भी' अज्ञात 'प्रकार के संदर्भों की गणना करता है, जिसमें कमजोर संदर्भ शामिल हो सकते हैं। मैंने एक्सकोड "व्यू मेमोरी ग्राफ पदानुक्रम" टूल के साथ रनटाइम 'CFGetRetainCount' मान को क्रॉस-रेफरेंसिंग करके सीखा। यहां और अधिक: https://koenig-media.raywenderlich.com/uploads/2017/08/visual_memory_debugger.png –

+0

धन्यवाद! इसके लिए फाउंडेशन आयात करने की आवश्यकता है। – Segev

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