توى روند عیبزدایى و تست اپها، Breakpointها نقش خیلى مهمى دارن، و ایکسکد هم راه کارهاى جالبى براى استفاده از اونا ارائه میده. توى این متن، به بعضى از ترفندهایى که میشه موقع استفاده از Breakpointها بکار برد، اشاره میکنیم.
خب. فرض میکنیم یه حلقه مثل کد زیر داریم:
var sum = 0 for i in 0...100 { sum += i } print(sum)
? خواسته: میخوام وقتى متغیر i برابر ۶۰ شد، مقدار sum رو بدونم چیه.
براى اینکار از اعمال شرط روى Breakpoint میتونیم استفاده کنیم. مراحلش هم به این صورته:
١. خود Breakpoint رو داخل حلقه، و روى خطى که مقدار sum تغییر میکنه، تنظیم میکنیم.
٢. روى Breakpoint ایجاد شده دوبار کلیک میکنیم، و یا راست کلیک میکنیم و Edit رو میزنیم.
٣. داخل فیلد Condition عبارت i == 60 رو مینویسیم.
حالا میدونیم زمانیکه مقدار i برابر ۶۰ بشه، مقدار sum برابر ۱۷۷۰ هست. البته این مقدار بدست اومده، قبل از انجام خطى هست که مورد نظر ما بوده.
? خواسته: میخوام مقدار sum رو فقط زمانى بدونم، که مقدار i بزرگتر یا برابر ۹۰ باشه.
براى اینکار، میتونیم از گزینه Ignore که زیر فیلد Condition هست استفاده کنیم. و فقط کافیه مقدارش رو برابر ۹۰ قرار بدیم. بعد از اینکار، زمانیکه i به ۹۰ برسه، و دفعات بعدش، Breakpoint ما اعمال میشه و میتونین دیباگ رو انجام بدین.
⚠️ نکته: توجه داشته باشین که گزینه Ignore، میاد و به تعداد دفعاتی که مشخص کردین، Breakpoint رو در نظر نمیگیره. ما اینجا از این گزینه استفاده کردیم، چون میدونیم حلقهاى که تعریف کردیم، داراى گام حلقه برابر با یک هست؛ و اگه iهاى بین ٠ تا ٨٩ رو در نظر نگیریم، عین این میمونه که ٩٠ بار این Breakpoint رو در نظر نگرفتیم.
? خواسته: میخوام مقدار sum رو براى iهاى بزرگتر یا مساوى ٩٠ بدونم، ولى حالش رو ندارم هر بار این مقدار رو توى پنل دیباگ ببینم و بعدش دستى برنامه رو Continue کنم!! ?
براى اینکار میتونین از Actionها استفاده کنین. مراحلش هم به این صورته:
١. مقدار مورد نظرتون رو داخل Ignore تنظیم کنین.
٢. گزینه Add Action رو بزنین و فیلدش رو هم بنویسین po sum. این دستور مقدار sum رو پرینت میکنه.
٣. گزینه Options رو فعال کنین. اینم براى اینه که اجراى برنامه بطور خودکار ادامه پیدا کنه.
٤. (دلخواه) اگه بخواین ببینین توى چه تابعى Breakpoint شما اعمال شده، میتونین از گزینه Log Message مربوط به Add Action استفاده کنین.
همونطور که توى عکس هم میبینین، براى Log Message از اسم Breakpoint استفاده شده و حالا تمام اطلاعاتى که میخواستیم رو برامون چاپ میکنه.
توی این مقاله، ما فقط یه سری استفادههای پایهای از Breakpoint رو اشاره کردیم؛ و برای کسب اطلاعات در مورد کاربردهای دیگه Breakpoint و بطور کلی کارکرد ابزارهای مخصوص دیباگ ایکسکد، میتونین مستندات اپل در مورد ابزار دیباگ رو مطالعه کنین.
? منبع مطلب: این مطلب رو بر اساس این پست نوشتم.