आप स्विफ्ट के नाम से जानी जाने वाली भाषा को ले सकते हैं और इसका नाम बदलकर "स्विफ्ट विद एआरसी" रख सकते हैं। फिर आप एक ही वाक्यविन्यास के साथ "स्विफ्ट विद जीसी" नामक एक नई भाषा बना सकते हैं, लेकिन जब वस्तुएं डील की जाती हैं, तो कम गारंटी के साथ।
एआरसी के साथ स्विफ्ट में, संदर्भ संख्या 0 होने के बाद, ऑब्जेक्ट जाएगा। कचरा संग्रह के साथ, जब तक आपके पास एक कमजोर संदर्भ है, तब तक आप उस कमजोर संदर्भ को वस्तु को "पुनर्प्राप्त" करने के लिए एक मजबूत संदर्भ दे सकते हैं। (स्विफ्ट में, एक बार संदर्भ संख्या 0 है, कमजोर संदर्भ शून्य हैं); यह एक बड़ा अंतर है।
और निश्चित रूप से एआरसी के साथ स्विफ्ट गारंटी देता है कि अंतिम संदर्भ गणना को मारने से वस्तु को तुरंत हटा दिया जाएगा। उदाहरण के लिए, आपके पास एक FileWriter वर्ग हो सकता है, जहाँ आपको एक ही समय में एक ही फ़ाइल के दो उदाहरण लिखने की अनुमति नहीं है। एआरसी के साथ स्विफ्ट में आप कह सकते हैं पुराना = शून्य; newWriter = FileWriter (...) और आपको पता होगा कि नया FileWriter पुराने के हटने के बाद ही बनाया गया है (जब तक कि आप किसी अन्य सन्दर्भ को नहीं रखते); जीसी के साथ स्विफ्ट में यह काम नहीं करेगा।
एक और अंतर यह है कि "स्विफ्ट विद एआरसी" में, वस्तुओं को केवल मजबूत संदर्भ चक्रों के माध्यम से संदर्भित किया जाता है, लेकिन वास्तव में उपलब्ध नहीं है, की गारंटी नहीं दी जाती है।
deinit
एक कीवर्ड और उससे जुड़े शब्दार्थ के रूप में उपस्थिति वास्तव में ऐसी चीजें हैं जो संदर्भ में, कार्यान्वयन के बजाय, भाषा को वर्ग गणना में रखती हैं।