قبل از اینکه یک نمونه کلاس نیاز به تفکیک داشته باشد، باید “deinitializer” را برای آزاد کردن فضای حافظه تعریف کرد. از کلید واژه “deinit” برای آزادسازی فضای حافظه اشغال شده توسط منابع سیستم استفاده می شود. Deinitialization تنها در انواع کلاس موجود است.

Deinitialization برای آزادسازی فضای حافظه

سوییفت به طور خودکار نمونه های شما را هنگامی که دیگر نیازی به آن نباشد برای آزاد کردن منابع از بین می برد. همانطور که در بخش دیگری توضیح داده شده است زبان برنامه نویسی سوئیفت از شمارش مرجع اتوماتیک (ARC) برای مدیریت حافظه استفاده می کند.
معمولاً هنگام تفکیک نمونه ها احتیاجی به مرتب کردن دستی نیست. با این حال، هنگام کار با منابع خود ممکن است به این کار نیاز داشته باشید. به عنوان مثال، اگر یک کلاس سفارشی برای باز کردن پرونده و ایجاد برخی از داده ها برای آن ایجاد می کنید، ممکن است لازم باشد که پرونده را قبل از حذف نمونه کلاس ببندید.

هنگامی که برنامه فوق را با استفاده از playground اجرا کنیم نتیجه زیر را می گیریم:

هنگامی که print = nil باشد،دستورات حذف شده اما به دلیل تفکیک نشدن مقادیر شمارنده حفظ می شود.

هنگامی که برنامه فوق را با استفاده از playground اجرا کنیم نتیجه زیر را می گیریم:

کلیدواژه ها :

این خبر را به اشتراک بگذارید :