تصحيح كود Swift: تقنيات سرية وأدوات قوية

مدرب بايثون أونلاين للمبتدئين

تعلم Python بسهولة دون إرهاق نظري. حل مهام عملية مع التحقق التلقائي واكتب الكود مباشرة في المتصفح.

ابدأ الدورة

لماذا "print" ليست طريقة، بل جريمة بحق الوقت

\n

لنكن صادقين: كل منا كتب مرة على الأقل في حياته print("هنا_لن_يدخل_أبداً") وأمل أن يعمل. أحياناً - كان يعمل. لكن في المشاريع الجادة، هذا الأسلوب يحول الكود إلى شجرة عيد الميلاد بزينة من السجلات. تصحيح Swift هو فن، واليوم سنشرحه من الألف إلى الياء. ستتعلم كيف تتوقف عن التخمين وتبدأ في "تصحيح" تطبيقات iOS بشكل احترافي.

\n

هذه المقالة لمن يكتبون بلغة Swift، لكنهم يشعرون أن Xcode يمكنه فعل المزيد. لن نعلمك الأساسيات - سنريك كيف يمكن أن يكون تصحيح كود Swift سريعاً وفعالاً وحتى ممتعاً. هيا بنا!

\n\n

1. نقاط التوقف الشرطية: محققك الخاص

\n

نقطة التوقف العادية توقف التنفيذ في كل مرة تصل إلى السطر. ماذا لو ظهر الخلل فقط في الاستدعاء رقم 1000 للدالة؟ أو فقط عندما userId == 42؟ هنا تأتي نقاط التوقف الشرطية في Swift للإنقاذ.

\n

انقر بزر الماوس الأيمن على نقطة التوقف ← اختر "Edit Breakpoint" ← أدخل الشرط.

\n\n

مثال: اصطياد خطأ في حلقة

\n
for index in 0..<items.count {\n    processItem(items[index]) // خطأ عندما index == 5\n}
\n

ضع نقطة توقف على السطر processItem وأدخل الشرط: index == 5. الآن سيتوقف المصحح بالضبط حيث يجب. لا مزيد من الضغطات الزائدة على F6.

\n\n

كتل الإجراءات: اجعل نقطة التوقف أكثر ذكاءً

\n

في نفس نافذة التحرير يوجد زر "Add Action". يمكنك:

\n
    \n
  • تنفيذ po variableName (طباعة الكائن) - يعرض قيمة المتغير تلقائياً.
  • \n
  • تشغيل صوت (نعم، حقاً!) - مفيد عندما يكون التصحيح في الخلفية.
  • \n
  • تسجيل رسالة في السجل - دون إيقاف التنفيذ.
  • \n
\n

فعّل علامة "Automatically continue after evaluating" - وستحصل على مسجل فائق لا يبطئ عمل التطبيق.

\n\n

2. LLDB: وحدة تحكم تعرف كل شيء

\n

يتجاهل العديد من المطورين وحدة تحكم التصحيح، معتقدين أن بها فقط po و p. في الواقع LLDB (Low Level Debugger) هو سكين سويسري لتصحيح Swift. إليك 5 أوامر ستغير حياتك:

\n\n
    \n
  • po - يطبع الكائن مع استدعاء description أو debugDescription. مثالي لكائنات UIKit.
  • \n
  • p - يطبع القيمة، لكن بدون استدعاء description. مفيد للأنواع البدائية.
  • \n
  • v - يعرض المتغيرات في الإطار الحالي. أسرع من النظر في لوحة Variables.
  • \n
  • expression - ينفذ أي كود Swift مباشرة أثناء التوقف. هل تريد تغيير قيمة متغير؟ expression self.title = "عنوان جديد".
  • \n
  • thread backtrace - يعرض مكدس الاستدعاءات. إذا تعطل التطبيق، هذا أول شيء يجب فعله.
  • \n
\n\n

مثال حي: تغيير واجهة المستخدم أثناء التنفيذ

\n

تخيل: توقفت عند نقطة توقف في viewDidLoad. في وحدة التحكم تكتب:

\n
expression self.view.backgroundColor = .red\nexpression self.view.layoutIfNeeded()
\n

وفويلا! شاشة المحاكي تتحول فوراً إلى اللون الأحمر. هكذا يمكنك اختبار الرسوم المتحركة والألوان والنصوص دون إعادة تشغيل.

\n\n

3. تصحيح العرض: النظر تحت غطاء واجهة المستخدم

\n

خطأ التخطيط هو كلاسيكي من نوعه. الزر ليس في مكانه، التسمية تتداخل مع الصورة، أو القيود تتصرف مثل المتمردين. تصحيح العرض في Xcode هو أشعة سينية لواجهتك.

\n

اضغط على زر "Debug View Hierarchy" (يشبه ثلاثة مربعات) في اللوحة السفلية. سترى مشهداً ثلاثي الأبعاد لجميع عناصر واجهة المستخدم. يمكنك التدوير، التكبير، إبراز القيود ورؤية قيمها الرقمية.

\n\n

تقنية: "اصطد القيد"

\n

إذا كان العنصر ليس في مكانه الصحيح، اختره في المشهد ثلاثي الأبعاد وانظر إلى قائمة القيود. الخطوط الحمراء تعني قيوداً متعارضة، والخطوط الص

المدونات

توصيات الكتب