CloudKit (CloudKit)
اینجا «کلودکیت (CloudKit)» را ساده می گوییم. کلودکیت داده اپ را هماهنگ می کند. بین دستگاه ها می چرخد و گم نمی شود. تمرکز ما ظرف (Container)، پایگاه داده و رکورد است. کلید سئو: کلودکیت.
شروع با Container و Database
«کانتینر (Container)» جعبه iCloud اپ است. «پایگاه داده خصوصی (Private DB)» داده کاربر را نگه می دارد. مثل کمد شخصی در مدرسه است.
import CloudKit;
let container = CKContainer.default();
let db = container.privateCloudDatabase;
این کد دسترسی به پایگاه داده خصوصی می دهد. سپس می توانیم رکوردها را بسازیم.
ذخیره رکورد (Save a Record)
«رکورد (Record)» یک شی داده است. مثل یادداشت کلاس. کلیدها فیلد هستند و مقدارها محتوا هستند.
import CloudKit;
func addNote(title: String, body: String, completion: @escaping (_ ok: Bool, _ error: Error?) -> Void) {
let record = CKRecord(recordType: "Note");
record["title"] = title as CKRecordValue;
record["body"] = body as CKRecordValue;
let db = CKContainer.default().privateCloudDatabase;
db.save(record) { saved, err in
if let _ = saved {
completion(true, nil);
} else {
completion(false, err);
}
};
}
1) رکورد می سازیم. 2) فیلدها را می نویسیم. 3) در پایگاه داده ذخیره می کنیم.
پرس وجو (Query) و خواندن رکوردها
برای گرفتن داده، «کوئری (Query)» می سازیم. «پرِدیکیت (Predicate)» شرط فیلتر است؛ اینجا همه را می آورد.
import CloudKit;
func loadNotes(completion: @escaping (_ records: [CKRecord]?, _ error: Error?) -> Void) {
let predicate = NSPredicate(value: true);
let query = CKQuery(recordType: "Note", predicate: predicate);
let db = CKContainer.default().privateCloudDatabase;
db.perform(query, inZoneWith: nil) { records, err in
if let records = records {
completion(records, nil);
} else {
completion(nil, err);
}
};
}
نکته: برای نتایج زیاد، از «عملیات (Operations)» و «کرسر (Cursor)» استفاده کن.
گام های عملی سریع
- قابلیت iCloud و CloudKit را فعال کن.
- کانتینر پیش فرض را بگیر و DB را آماده کن.
- رکورد بساز و فیلدها را بنویس.
- با Query رکوردها را بخوان.
- خطاهای شبکه را آرام مدیریت کن.
جمع بندی سریع
- کلودکیت همگام سازی امن می دهد.
- کانتینر جعبه iCloud اپ است.
- رکورد مثل برگه نمره است.
- کوئری رکوردها را برمی گرداند.
- با خطاها دوستانه رفتار کن.