PDA

View Full Version : فـرق Free و Destroy



rezamahdizadeh
جمعه 06 دی 1387, 07:07 صبح
فرق دستورات Free و Destroy چيست؟

vcldeveloper
جمعه 06 دی 1387, 17:51 عصر
Destroy را هیچوقت برای آزاد کردن یک شی مستقیما فراخوانی نمیکنند، بلکه همیشه از Free استفاده می کنند؛ چون Free قبل از فراخوانی کردن Destroy، بررسی میکنه که شی nil نباشه.
وقتی کلاسی را خودتون طراحی می کنید که باید اشیاء مربوط به خود را در پایان کارش آزاد کنه، Destroy را Override می کنید، و کد مربوط به آزاد کردن آن اشیاء را در آن می نویسید.

feedsimba
چهارشنبه 11 دی 1387, 00:44 صبح
هر دو خیلی شبیه به هم کار می‏کنند با این تفاوت که Free چک می‏کند که متغییر شما nil نباشد. البته هر دو تابع فقط کلاس را Free می‏کنند ولی متغییری که شما درش کلاس را ریخته‏ای Nil نمی‏کنند. برای این کار می‏توانی از تابع FreeAndNil استفاده کنی. من FreeAndNil را بیشتر پیشنهاد می‏کنم.