मजबूत संदर्भ चक्र को खोजने के लिए विधि स्विफ्ट में एक ही है।
आप एक्सकोड से ऐप चलाएंगे, ऐप को चक्र को प्रकट करने के लिए पर्याप्त रूप से व्यायाम करेंगे, और फिर "डीबग मेमोरी ग्राफ" बटन () पर टैप करें। इसके बाद आप बाईं तरफ के पैनल में एक अप्रकाशित वस्तु का चयन कर सकते हैं और यह आपको स्मृति ग्राफ दिखा देंगे, अक्सर जो कर सकते हैं स्पष्ट रूप से मजबूत संदर्भ चक्र:
कभी कभी स्मृति चक्र नहीं है कि के रूप में के रूप में स्पष्ट हैं, लेकिन आप कम से कम देख सकते हैं कि ऑब्जेक्ट में प्रश्न के लिए एक मजबूत संदर्भ रखने वाला वस्तु क्या है। यदि आवश्यक हो, तो आप पीछे की तरफ ट्रैक कर सकते हैं और पहचान सकते हैं कि इसके लिए एक मजबूत संदर्भ क्या है, और इसी तरह।
कभी-कभी यह जानना कि किस प्रकार की वस्तु मजबूत संदर्भ को रखती है अपर्याप्त है, और आप वास्तव में जानना चाहते हैं कि आपके कोड में मजबूत संदर्भ स्थापित किया गया था।https://stackoverflow.com/a/30993476/1271826 में दिखाए गए अनुसार "मॉलोक स्टैक" विकल्प का उपयोग यह पता लगाने के लिए किया जा सकता है कि कॉल स्टैक क्या था जब यह मजबूत संदर्भ स्थापित किया गया था (अक्सर आपको कोड की सटीक रेखा की पहचान करने देता है जहां इन मजबूत संदर्भ स्थापित किए गए थे)। अधिक जानकारी के लिए, डब्ल्यूडब्ल्यूडीसी 2016 वीडियो Visual Debugging with Xcode देखें।
आप लीक ऑब्जेक्ट की पहचान करने के लिए उपकरण का भी उपयोग कर सकते हैं। एपोकेशंस टूल के साथ इंस्ट्रूमेंट्स के माध्यम से ऐप चलाएं, बार-बार (केवल एक या दो बार नहीं) ऐप को कुछ स्थिर स्थिति की स्थिति में वापस लौटाएं और यदि स्मृति जारी रहती है, तो आपके पास एक मजबूत संदर्भ चक्र हो सकता है। आप आवंटन उपकरण वस्तुओं किस तरह जारी नहीं किया जा रहा है की पहचान करने की पहचान के लिए ठीक जहां इन मजबूत संदर्भ स्थापित किए गए थे, आदि
WWDC 2013 वीडियो Fixing Memory Issues और WWDC 2012 वीडियो iOS App Performance: Memory देखें सुविधा का उपयोग कर सकते हैं, का उपयोग करें "रिकॉर्ड संदर्भ गिनती" स्मृति मुद्दों की पहचान और समाधान करने के लिए परिचय के लिए। प्रस्तावित बुनियादी तकनीक आज भी लागू हैं (हालांकि उपकरण उपकरण का यूआई थोड़ा बदल गया है ... यदि आप थोड़ा बदलते यूआई के लिए परिचय चाहते हैं, तो डब्ल्यूडब्ल्यूडीसी 2014 वीडियो Improving Your App with Instruments देखें)।
एक तरफ, "कचरा संग्रह" एक बहुत ही अलग स्मृति प्रणाली को संदर्भित करता है और यहां लागू नहीं होता है।
मैं इस पर्यावरण प्रणाली के लिए नया हूं (इसलिए उद्देश्य सी का कोई ज्ञान नहीं), तो, अब से यह एआरसी है। –
यह ठीक है, क्योंकि अवधारणाएं काफी हद तक समान हैं। मैं आश्चर्यचकित हूं कि यदि आप उद्देश्य-सी मजबूत संदर्भ चक्रों में चर्चा देखते हैं और तुरंत इसे अपने स्विफ्ट प्रोग्रामिंग पर लागू नहीं कर पा रहे हैं (esp क्योंकि आप 'अज्ञात' और स्विफ्ट में 'कमजोर' वाक्यविन्यास से परिचित हैं)। – Rob