Swift (iOS/macOS) में डेटा सत्यापन: उपकरणों और लाइब्रेरीज़ की समीक्षा
डेटा सत्यापन Swift में गुणवत्तापूर्ण मोबाइल और डेस्कटॉप एप्लिकेशन विकसित करने के प्रमुख पहलुओं में से एक है। यह सुनिश्चित करता है कि उपयोगकर्ता द्वारा दर्ज किया गया डेटा अपेक्षित प्रारूप और व्यावसायिक नियमों के अनुरूप हो। इस लेख में, हम Apple पारिस्थितिकी तंत्र में मुख्य दृष्टिकोण, अंतर्निहित तंत्र और लोकप्रिय लाइब्रेरीज़ पर चर्चा करेंगे।
सत्यापन क्यों महत्वपूर्ण है?
सत्यापन के बिना, एप्लिकेशन में गलत डेटा आने का जोखिम रहता है, जिसके परिणामस्वरूप हो सकता है:
- सर्वर-साइड में त्रुटियाँ
- क्लाइंट-साइड पर अप्रत्याशित क्रैश
- सुरक्षा कमज़ोरियाँ (SQL-इंजेक्शन, XSS)
- खराब उपयोगकर्ता अनुभव
Swift और Foundation की अंतर्निहित क्षमताएँ
Swift और Foundation फ्रेमवर्क सत्यापन के लिए बुनियादी लेकिन शक्तिशाली उपकरण प्रदान करते हैं।
1. NSPredicate के साथ जाँच
NSPredicate डेटा को फ़िल्टर और जाँचने के लिए एक शक्तिशाली उपकरण है। यह नियमित अभिव्यक्तियों का समर्थन करता है, जो इसे ईमेल, फ़ोन नंबर और अन्य स्ट्रिंग्स के सत्यापन के लिए सुविधाजनक बनाता है।
import Foundation
func isValidEmail(_ email: String) -> Bool { let emailRegEx = "[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\\\.[A-Za-z]{2,64}" let predicate = NSPredicate(format:"SELF MATCHES %@", emailRegEx) return predicate.evaluate(with: email)}
// उपयोग का उदाहरणlet testEmail = "user@example.com"print(isValidEmail(testEmail)) // true2. NSRegularExpression के माध्यम से सत्यापन
अधिक जटिल परिदृश्यों के लिए NSRegularExpression का उपयोग करना सुविधाजनक है।
func isValidPassword(_ password: String) -> Bool { // कम से कम 8 वर्ण, एक बड़ा अक्षर, एक छोटा अक्षर, एक अंक let passwordRegex = "^(?=.*[a-z])(?=.*[A-Z])(?=.*\\\\d)[a-zA-Z\\\\d]{8,}$" do { let regex = try NSRegularExpression(pattern: passwordRegex) let range = NSRange(location: 0, length: password.utf16.count) return regex.firstMatch(in: password, options: [], range: range) != nil } catch { return false }}
print(isValidPassword("Swift1234")) // trueprint(isValidPassword("swift123")) // false (कोई बड़ा अक्षर नहीं)सत्यापन के लिए लोकप्रिय लाइब्रेरीज़
हालाँकि सरल कार्यों के लिए अंतर्निहित साधन पर्याप्त हैं, लेकिन कई नियमों वाले जटिल फॉर्म के लिए विशेष लाइब्रेरीज़ का उपयोग करना अधिक सुविधाजनक है।
1. Validator (Adam Waite द्वारा)
Swift में स्ट्रिंग सत्यापन के लिए सबसे लोकप्रिय लाइब्रेरीज़ में से एक। यह चेन सत्यापन और कस्टम वैलिडेटर का समर्थन करती है।
// SPM के माध्यम से स्थापना: .package(url: "https://github.com/adamwaite/Validator.git", from: "3.0.0")import Validator
let emailRule = ValidationRulePattern(pattern: EmailValidationPattern.standard, error: "गलत ईमेल")let nameRule = ValidationRuleLength(min: 2, max: 50, error: "नाम 2 से 50 वर्णों के बीच होना चाहिए")
let email = "test@mail.ru"let result = email.validate(rule: emailRule)switch result {case .valid: print("ईमेल सही है")case .invalid(let errors): print(errors.first?.message ?? "त्रुटि")}2. SwiftValidators (gkaimakas द्वारा)
घोषणात्मक सिंटैक्स वाली हल्की लाइब्रेरी। रीयल-टाइम में फ़ील्ड की जाँच के लिए उपयुक्त।
import SwiftValidators
let phone = "+7 (999) 123-45-67"if Validator.isPhoneNumber().trim().validate(phone) { print("फ़ोन नंबर मान्य है")} else { print("गलत प्रारूप")}Combine के साथ SwiftUI में सत्यापन
SwiftUI पर आधुनिक एप्लिकेशन अक्सर रिएक्टिव सत्यापन के लिए Combine का उपयोग करते हैं। यह इनपुट के दौरान तुरंत त्रुटियाँ दिखाने की अनुमति देता है।
import SwiftUIimport Combine
class RegistrationViewModel: ObservableObject { @Published var email = "" @P