التحقق من البيانات في Swift: مكتبة Validator

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

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

ابدأ الدورة

ما هو التحقق من صحة البيانات في Swift ولماذا هو مطلوب؟

التحقق من صحة البيانات هو عملية فحص البيانات المدخلة للتأكد من مطابقتها لقواعد محددة. في تطوير iOS/macOS، يعتبر هذا الأمر بالغ الأهمية: من التحقق من البريد الإلكتروني وكلمة المرور في نموذج التسجيل إلى التحقق من استجابة JSON من الخادم. غالبًا ما تكون الأدوات المدمجة في Foundation (مثل NSPredicate والتعبيرات العادية) مرهقة وغير ملائمة لإعادة الاستخدام. Validator هي مكتبة خفيفة الوزن بلغة Swift تتيح لك وصف قواعد التحقق بشكل تصريحي باستخدام بناء الجملة المتسلسل (chainable syntax) واستخدامها في أي مكان في المشروع.

كيفية تثبيت مكتبة Validator

مكتبة Validator متاحة عبر Swift Package Manager (SPM). أضفها إلى Package.swift أو عبر Xcode: File → Add Packages → أدخل عنوان URL للمستودع:

https://github.com/adamwaite/Validator

أو عبر CocoaPods إذا كنت تستخدمه:

pod 'Validator'

الوظائف الرئيسية للمكتبة

  • قواعد مدمجة: البريد الإلكتروني، URL، السلسلة النصية، الرقم، الطول، التعبيرات العادية، وغيرها الكثير.
  • قواعد مخصصة: يمكنك إنشاء أي فحص عن طريق تطبيق بروتوكول ValidationRule.
  • التحقق من المجموعات: فحص المصفوفات، القواميس، والقيم الاختيارية.
  • أخطاء قابلة للقراءة البشرية: إرجاع رسائل خطأ مترجمة.
  • التوافق مع UIKit/SwiftUI: يمكنك التحقق من صحة حقول النص مباشرة.

مثال على كود Swift

import Validator

// إنشاء القواعدlet emailRule = ValidationRulePattern(pattern: EmailValidationPattern.standard)let passwordRule = ValidationRuleLength(min: 8, max: 32)

// التحقق من صحة السلسلة النصيةlet email = "test@example.com"let result = email.validate(rule: emailRule)

switch result {case .valid: print("البريد الإلكتروني صحيح")case .invalid(let errors): print("الأخطاء: \\(errors)")}

// التحقق بقواعد متعددةlet username = "user123"let usernameRules = ValidationRuleSet<String>()usernameRules.add(rule: ValidationRuleLength(min: 3))usernameRules.add(rule: ValidationRulePattern(pattern: "^[a-zA-Z0-9_]+$"))

let usernameResult = username.validate(rules: usernameRules)if case .invalid(let errors) = usernameResult { print("أخطاء التحقق من اسم المستخدم: \\(errors)")}

// مثال لـ UITextField (UIKit)let textField = UITextField()textField.text = "invalid email"textField.validate(rule: emailRule) { result in switch result { case .valid: textField.layer.borderColor = UIColor.green.cgColor case .invalid(let errors): textField.layer.borderColor = UIColor.red.cgColor print(errors.first?.message ?? "") }}

متى تستخدم Validator

المكتبة مثالية لـ:

  • نماذج الإدخال (التسجيل، تسجيل الدخول، الملف الشخصي).
  • التحقق من صحة البيانات قبل إرسالها إلى الخادم.
  • فحص إدخال المستخدم في الوقت الفعلي.
  • تحليل والتحقق من استجابات JSON/API.
  • أي سيناريو يتطلب فحصًا متكررًا وقابلاً لإعادة الاستخدام للبيانات.

تعمل Validator على تقليل الكود النمطي بشكل كبير، وتجعل التحقق من الصحة قابلاً للقراءة والاختبار. إنها أداة لا غنى عنها لأي مطور Swift يعمل مع إدخال المستخدم أو البيانات الخارجية.

توصيات