دوره های آموزشی آکادمی پی وی لرن (پروژه محور و ویژه بازار کار)



  • ۲۲
  • آبان

جلسه ۲۷ : حذف مقداردهی اولیه ( Deinitialization ) در Swift

  • دسته‌بندی‌ها :
جلسه ۲۷ : حذف مقداردهی اولیه ( Deinitialization ) در Swift
    • جزئیات
    • نوع محتواآموزش تصویری

      مقدمه

      با عرض سلام و وقت بخیر خدمت کاربران سایت پی وی لرن . و کاربرانی که دوره کامل آموزش Swift را دنبال می کنند. در بخش قبلی با مبحث مقدار دهی اولیه در Swift و قوانین آن آشنا شدیم. اما زمانیکه یک نمونه کلاس لازم شود که حذف شود باید با فراخوانی یک deinitializer فضای حافظه ی اشغال شده توسط آن کلاس حذف می شود. این عملیات با استفاده از مفهوم Deinitialization در Swift انجام می شود. کاربرد این ویژگی برای آزاد کردن فضای اشغال شده توسط کلاس ها با حذف مقداردهی اولیه در Swift می باشد. که در ادامه ی این مبحث شما را با  آشنا خواهیم کرد.

      مفهوم Deinitialization در Swift

      در این آموزش به مبحث چگونگی استفاده از فهوم Deinitialization در Swift پرداخته ایم.

      در Swift از کلمه ی کلیدی ‘deinit’ برای آزاد سازی فضای حافظه توسط منابع سیستم استفاده می شود.

      Deinitialization فقط در انواع کلاس در دسترس است.

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

      Swift 4 به طور خودکار فضای اشغال شده ی موارد خود را هنگامی که دیگر مورد نیاز نیست آزاد می کند تا منابع را آزاد کند.

      Swift 4 مدیریت حافظه موارد را از طریق شمارش معکوس خودکار (ARC) مدیریت می کند.

      معمولا، هنگامی که نمونه های شما آزاد می شود، نیازی به پاک کردن دستی آن ها ندارید.

      با این حال، هنگامی که شما با منابع خود، کار می کنید، ممکن است شما نیاز به انجام برخی از حذف های اضافی داشته باشید.

      برای مثال، اگر شما یک کلاس سفارشی برای باز کردن یک فایل ایجاد کنید و برخی از داده ها را به آن ارسال کنید، ممکن است لازم باشد قبل از اینکه نمونه کلاس حذف شود، فایل را ببندید.

      مثال : 

      نتیجه ی کامپایل و اجرای مثال فوق :

      مثال : 

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

      مثال : 

      نتیجه ی کامپایل و اجرای مثال فوق :

      مثال : 

      کلام آخر

      همانطور که در زمان ایجاد خصوصیات ، ساختارها و کلاس ها باید مقداردهی اولیه اعضای آن ها انجام شود، در هنگام حذف این موارد نیز باید طبق  مفهوم   Deinitialization در Swift فضای حافظه ی اشغال شده توسط این موراد را نیز حذف کرد.

      QR:  جلسه ۲۷ : حذف مقداردهی اولیه ( Deinitialization ) در Swift
      به اشتراک بگذارید