مخرب ها (Deinitializers)
«مخرب (Deinitializer)» کدی برای جمع کردن کارها هنگام پایان شیء است. در سوئیفت، کلمه deinit این کار را انجام می دهد. بنابراین منابع آزاد می شوند و مشکل نشت کمتر می شود. این بخش با تمرکز روی «مخرب ها سوئیفت» نوشته شده است.
deinit چیست و کی صدا می خورد؟
مخرب ها به صورت خودکار هنگام آزادشدن نمونه فراخوانی می شوند. یعنی وقتی دیگر ارجاعی نیست، کد تمیزکاری اجرا می شود.
class FileHandle {
init() {
print("open")
}
deinit {
print("close")
}
}
var h: FileHandle? = FileHandle()
h = nil
کاربردهای متداول مخرب ها سوئیفت
از مخرب ها برای بستن فایل، آزادکردن منابع، و حذف ناظرها استفاده کنید. مانند پایان یک بازی، همه چیز را مرتب کنید.
گام های عملی
- یک کلاس بساز و در
initپیام چاپ کن. - یک
deinitاضافه کن و پیام پایانی چاپ کن. - نمونه را
nilکن و خروجی را بررسی کن.
نکات مهم
نکته: مخرب ها فقط در کلاس ها هستند. در struct نداریم.
نکته: deinit ورودی ندارد و فراخوانی دستی نمی شود.
لینک های داخلی
برای شروع ساخت، بخش سازنده ها را ببین. سپس درباره مدیریت دید، کنترل دسترسی را مرور کن.
جمع بندی سریع
deinitتمیزکاری نهایی را انجام می دهد.- تنها در کلاس ها وجود دارد.
- به صورت خودکار اجرا می شود.
- برای آزادسازی منابع عالی است.