مكتبة Swift القياسية (iOS/macOS): دليل شامل
مكتبة Swift القياسية هي مجموعة أساسية من الأنواع والبروتوكولات والدوال التي يُبنى عليها كل التطوير لنظام iOS وmacOS وwatchOS وtvOS. على عكس العديد من اللغات حيث تكون المكتبة القياسية بسيطة، تقدم Swift مجموعة أدوات غنية "مباشرة من الصندوق". في هذه المقالة، سنقوم بتحليل المكونات الرئيسية للمكتبة المستخدمة في التطوير اليومي بالتفصيل.
أنواع البيانات والبروتوكولات الأساسية
أساس المكتبة يتكون من الأنواع البدائية والبروتوكولات التي تضمن التوحيد في التعامل مع البيانات.
- بروتوكولات المساواة والمقارنة:
Equatable،Comparable،Hashable— تسمح بمقارنة وتجزئة الكائنات. - بروتوكولات التمثيل:
CustomStringConvertible،CustomDebugStringConvertible— لوصف الكائنات نصياً. - الأنواع الأساسية:
Int،Double،Bool،String،Character— مُعاد تعريفها لتحقيق أقصى أداء.
// مثال على استخدام البروتوكولاتstruct Person: Equatable, CustomStringConvertible { let name: String let age: Int var description: String { return "\\(name), \\(age) سنة" }}
let alice = Person(name: "أليس", age: 30)let bob = Person(name: "بوب", age: 25)print(alice == bob) // falseprint(alice) // "أليس, 30 سنة"المجموعات: المصفوفات، القواميس والمجموعات
توفر Swift ثلاثة أنواع رئيسية من المجموعات، محسّنة لسيناريوهات استخدام مختلفة.
المصفوفات (Array)
مجموعات مرتبة مع وصول عشوائي. تدعم التوسع والانكماش الديناميكي.
var numbers: [Int] = [1, 2, 3, 4, 5]numbers.append(6)numbers.remove(at: 0)let filtered = numbers.filter { $0 > 3 }print(filtered) // [4, 5, 6]القواميس (Dictionary)
مجموعات غير مرتبة من "مفتاح-قيمة". يجب أن تكون المفاتيح من نوع Hashable.
var capitals: [String: String] = [ "روسيا": "موسكو", "فرنسا": "باريس", "اليابان": "طوكيو"]capitals["ألمانيا"] = "برلين"if let russiaCapital = capitals["روسيا"] { print("عاصمة روسيا هي \\(russiaCapital)")}المجموعات (Set)
مجموعات غير مرتبة من العناصر الفريدة. مثالية للتحقق من الانتماء والعمليات الرياضية.
let setA: Set = [1, 2, 3, 4]let setB: Set = [3, 4, 5, 6]let intersection = setA.intersection(setB)let union = setA.union(setB)print(intersection) // [3, 4]print(union) // [1, 2, 3, 4, 5, 6]التعامل مع السلاسل النصية
السلاسل النصية في Swift هي مجموعات من أحرف Unicode، مما يجعل التعامل مع التدويل بسيطاً للغاية.
- فهارس السلاسل النصية:
startIndex،endIndex،index(_:offsetBy:)— تنقل آمن بين الأحرف. - التضمين:
"\\(متغير)"— دمج القيم داخل السلسلة النصية. - الحرفية متعددة الأسطر:
""" """— تنسيق مناسب.
let greeting = "مرحباً، أيها العالم!"let firstChar = greeting[greeting.startIndex] // "م"let index = greeting.index(greeting.startIndex, offsetBy: 7)let substring = greeting[index...] // "أيها العالم!"
// التضمين وتعدد الأسطرlet name = "سويفت"let description = """اللغة \\(name) تُستخدم لتطويرتطبيقات iOS وmacOS."""print(description)الأنواع الاختيارية والتعامل مع nil
تقدم Swift تعاملاً آمناً مع القيم المفقودة من خلال الأنواع الاختيارية. هذه إحدى الميزات الرئيسية للغة.
var optionalName: String? = "أليكسي"// Optional