Using Core Data with CloudKit -...
Transcript of Using Core Data with CloudKit -...
![Page 1: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/1.jpg)
© 2019 Apple Inc. All rights reserved. Redistribution or public display not permitted without written permission from Apple.
#WWDC19
Nick Gillett, Core Data
•Using Core Data with CloudKit
![Page 2: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/2.jpg)
Using Core Data with CloudKit
![Page 3: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/3.jpg)
Using Core Data with CloudKit
Everything should sync
![Page 4: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/4.jpg)
Using Core Data with CloudKit
Everything should sync
Sync should be easy
![Page 5: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/5.jpg)
![Page 6: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/6.jpg)
![Page 7: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/7.jpg)
![Page 8: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/8.jpg)
![Page 9: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/9.jpg)
![Page 10: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/10.jpg)
![Page 11: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/11.jpg)
![Page 12: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/12.jpg)
![Page 13: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/13.jpg)
![Page 14: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/14.jpg)
![Page 15: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/15.jpg)
![Page 16: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/16.jpg)
![Page 17: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/17.jpg)
![Page 18: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/18.jpg)
![Page 19: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/19.jpg)
![Page 20: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/20.jpg)
![Page 21: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/21.jpg)
![Page 22: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/22.jpg)
![Page 23: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/23.jpg)
![Page 24: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/24.jpg)
![Page 25: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/25.jpg)
![Page 26: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/26.jpg)
Existing Technologies
![Page 27: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/27.jpg)
Existing Technologies
Core Data provides local persistence
![Page 28: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/28.jpg)
Existing Technologies
Core Data provides local persistence
CloudKit provides distributed persistence
![Page 29: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/29.jpg)
Existing Technologies
Core Data provides local persistence
CloudKit provides distributed persistence
Both exist on all platforms
![Page 30: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/30.jpg)
Existing Technologies
Core Data provides local persistence
CloudKit provides distributed persistence
Both exist on all platforms
Both support a wide variety of applications
![Page 31: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/31.jpg)
Existing Technologies
![Page 32: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/32.jpg)
Existing Technologies
Objects
Models
Stores
![Page 33: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/33.jpg)
Existing Technologies
Objects
Models
Stores
Core Data CloudKit
![Page 34: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/34.jpg)
Existing Technologies
Objects
Models
Stores
Core Data CloudKit
NSManagedObject
![Page 35: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/35.jpg)
Existing Technologies
Objects
Models
Stores
Core Data CloudKit
NSManagedObject CKRecord
![Page 36: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/36.jpg)
Existing Technologies
Objects
Models
Stores
Core Data CloudKit
NSManagedObject CKRecord
NSManagedObjectModel
![Page 37: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/37.jpg)
Existing Technologies
Objects
Models
Stores
Core Data CloudKit
NSManagedObject CKRecord
NSManagedObjectModel Schema
![Page 38: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/38.jpg)
Existing Technologies
Objects
Models
Stores
Core Data CloudKit
NSManagedObject CKRecord
NSManagedObjectModel
NSPersistentStore
Schema
![Page 39: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/39.jpg)
Existing Technologies
Objects
Models
Stores
Core Data CloudKit
NSManagedObject CKRecord
NSManagedObjectModel
NSPersistentStore CKRecordZone / CKDatabase
Schema
![Page 40: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/40.jpg)
![Page 41: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/41.jpg)
![Page 42: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/42.jpg)
![Page 43: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/43.jpg)
![Page 44: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/44.jpg)
![Page 45: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/45.jpg)
![Page 46: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/46.jpg)
![Page 47: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/47.jpg)
![Page 48: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/48.jpg)
![Page 49: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/49.jpg)
![Page 50: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/50.jpg)
![Page 51: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/51.jpg)
![Page 52: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/52.jpg)
![Page 53: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/53.jpg)
![Page 54: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/54.jpg)
![Page 55: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/55.jpg)
![Page 56: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/56.jpg)
![Page 57: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/57.jpg)
![Page 58: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/58.jpg)
![Page 59: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/59.jpg)
![Page 60: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/60.jpg)
![Page 61: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/61.jpg)
![Page 62: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/62.jpg)
![Page 63: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/63.jpg)
![Page 64: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/64.jpg)
![Page 65: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/65.jpg)
![Page 66: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/66.jpg)
![Page 67: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/67.jpg)
![Page 68: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/68.jpg)
![Page 69: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/69.jpg)
![Page 70: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/70.jpg)
What Is NSPersistentCloudKitContainer?
![Page 71: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/71.jpg)
What Is NSPersistentCloudKitContainer?
Encapsulation of common patterns
![Page 72: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/72.jpg)
What Is NSPersistentCloudKitContainer?
Encapsulation of common patterns
Save thousands of lines of code
![Page 73: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/73.jpg)
What Is NSPersistentCloudKitContainer?
Encapsulation of common patterns
Save thousands of lines of code
Foundation we can build on
![Page 74: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/74.jpg)
What Is NSPersistentCloudKitContainer?
Encapsulation of common patterns
Save thousands of lines of code
Foundation we can build on
Help us help you! Submit feedback!
![Page 75: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/75.jpg)
NSPersistentCloudKitContainer
![Page 76: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/76.jpg)
NSPersistentCloudKitContainer
A local replica of all CloudKit data
![Page 77: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/77.jpg)
NSPersistentCloudKitContainer
A local replica of all CloudKit data
Robust scheduling and error recovery
![Page 78: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/78.jpg)
NSPersistentCloudKitContainer
A local replica of all CloudKit data
Robust scheduling and error recovery
Transformation of NSManagedObject to CKRecord
![Page 79: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/79.jpg)
Local Replica
![Page 80: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/80.jpg)
Local Replica
![Page 81: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/81.jpg)
Local Replica
![Page 82: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/82.jpg)
Local Replica
![Page 83: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/83.jpg)
Local Replica
![Page 84: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/84.jpg)
Local Replica
![Page 85: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/85.jpg)
Local Replica
![Page 86: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/86.jpg)
Local Replica
milliseconds seconds – minutes
![Page 87: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/87.jpg)
Local Replica
GB/s KB/s – MB/s
![Page 88: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/88.jpg)
Local Replica
![Page 89: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/89.jpg)
Scheduling
![Page 90: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/90.jpg)
Scheduling
![Page 91: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/91.jpg)
Scheduling
![Page 92: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/92.jpg)
Scheduling
![Page 93: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/93.jpg)
Scheduling
![Page 94: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/94.jpg)
Scheduling
![Page 95: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/95.jpg)
Scheduling
![Page 96: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/96.jpg)
Scheduling
![Page 97: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/97.jpg)
Scheduling
![Page 98: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/98.jpg)
Scheduling
![Page 99: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/99.jpg)
Scheduling
![Page 100: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/100.jpg)
Scheduling
![Page 101: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/101.jpg)
Scheduling
![Page 102: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/102.jpg)
Scheduling
![Page 103: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/103.jpg)
Scheduling
![Page 104: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/104.jpg)
Scheduling
![Page 105: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/105.jpg)
Scheduling
![Page 106: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/106.jpg)
Scheduling
![Page 107: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/107.jpg)
NSManagedObject to CKRecord
![Page 108: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/108.jpg)
NSManagedObject to CKRecord
![Page 109: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/109.jpg)
NSManagedObject to CKRecord
![Page 110: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/110.jpg)
NSManagedObject to CKRecord
![Page 111: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/111.jpg)
NSManagedObject to CKRecord
![Page 112: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/112.jpg)
NSManagedObject to CKRecord
![Page 113: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/113.jpg)
NSManagedObject to CKRecord
![Page 114: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/114.jpg)
NSManagedObject to CKRecord
![Page 115: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/115.jpg)
NSManagedObject to CKRecord
![Page 116: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/116.jpg)
NSManagedObject to CKRecord
![Page 117: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/117.jpg)
NSManagedObject to CKRecord
![Page 118: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/118.jpg)
NSManagedObject to CKRecord
![Page 119: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/119.jpg)
NSManagedObject to CKRecord
![Page 120: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/120.jpg)
NSManagedObject to CKRecord
![Page 121: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/121.jpg)
NSManagedObject to CKRecord
![Page 122: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/122.jpg)
NSManagedObject to CKRecord
![Page 123: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/123.jpg)
NSPersistentCloudKitContainer
![Page 124: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/124.jpg)
NSPersistentCloudKitContainer
Complete local replica
![Page 125: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/125.jpg)
NSPersistentCloudKitContainer
Complete local replica
Automatic scheduling
![Page 126: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/126.jpg)
NSPersistentCloudKitContainer
Complete local replica
Automatic scheduling
Serialization from NSManagedObject to CKRecord
![Page 127: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/127.jpg)
Life After Adopting NSPersistentCloudKitContainer
![Page 128: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/128.jpg)
Life After Adopting NSPersistentCloudKitContainer
•Build great applications with Core Data
![Page 129: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/129.jpg)
Life After Adopting NSPersistentCloudKitContainer
•Build great applications with Core Data•Add on to our foundation
![Page 130: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/130.jpg)
Learning About NSPersistentCloudKitContainer
![Page 131: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/131.jpg)
Learning About NSPersistentCloudKitContainer
Mirroring a Core Data Store with CloudKit
Setting Up Core Data with CloudKit
Creating a Core Data Model for CloudKit
Syncing a Core Data Store with CloudKit
Reading CloudKit Records for Core Data
![Page 132: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/132.jpg)
Build Great Apps with Core Data
![Page 133: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/133.jpg)
Build Great Apps with Core Data
Responsive user interfaces with NSFetchResultsController
![Page 134: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/134.jpg)
Build Great Apps with Core Data
Responsive user interfaces with NSFetchResultsController
Stable views with query generations
![Page 135: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/135.jpg)
Build Great Apps with Core Data
Responsive user interfaces with NSFetchResultsController
Stable views with query generations
Change processing with history tracking
![Page 136: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/136.jpg)
Build Great Apps with Core Data
Responsive user interfaces with NSFetchResultsController
Stable views with query generations
Change processing with history tracking
Making Apps with Core Data Thursday, 3:00
![Page 137: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/137.jpg)
![Page 138: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/138.jpg)
![Page 139: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/139.jpg)
![Page 140: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/140.jpg)
![Page 141: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/141.jpg)
Life After Adopting NSPersistentCloudKitContainer
•Build great applications with Core Data •Add on to our foundation
![Page 142: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/142.jpg)
Extending NSPersistentCloudKitContainer
![Page 143: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/143.jpg)
Extending NSPersistentCloudKitContainer
Working with multiple stores
![Page 144: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/144.jpg)
Extending NSPersistentCloudKitContainer
Working with multiple stores
Working with the CloudKit Schema
![Page 145: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/145.jpg)
Extending NSPersistentCloudKitContainer
Working with multiple stores
Working with the CloudKit Schema
Data Modeling for collaboration
![Page 146: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/146.jpg)
Multiple Store Use Cases
![Page 147: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/147.jpg)
Multiple Store Use Cases
Data Segregation
![Page 148: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/148.jpg)
Multiple Store Use Cases
Data Segregation
Enforcement of different types of constraints
![Page 149: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/149.jpg)
Multiple Store Use Cases
Data Segregation
Enforcement of different types of constraints
Throttling/Coalescing
![Page 150: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/150.jpg)
NSPersistentCloudKitContainer — Multiple Stores
![Page 151: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/151.jpg)
NSPersistentCloudKitContainer — Multiple Stores
![Page 152: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/152.jpg)
NSPersistentCloudKitContainer — Multiple Stores
![Page 153: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/153.jpg)
NSPersistentCloudKitContainer — Multiple Stores
![Page 154: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/154.jpg)
NSPersistentCloudKitContainer — Multiple Stores
![Page 155: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/155.jpg)
NSPersistentCloudKitContainer — Multiple Stores
![Page 156: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/156.jpg)
NSPersistentCloudKitContainer — Multiple Stores
![Page 157: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/157.jpg)
NSPersistentCloudKitContainer — Multiple Stores
![Page 158: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/158.jpg)
NSPersistentCloudKitContainer — Multiple Stores
![Page 159: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/159.jpg)
NSPersistentCloudKitContainer — Multiple Stores
![Page 160: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/160.jpg)
NSPersistentCloudKitContainer — Multiple Stores
![Page 161: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/161.jpg)
NSPersistentCloudKitContainer — Multiple Stores
![Page 162: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/162.jpg)
NSPersistentCloudKitContainer — Multiple Stores
![Page 163: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/163.jpg)
NSPersistentCloudKitContainer — Multiple Stores
![Page 164: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/164.jpg)
NSPersistentCloudKitContainer — Multiple Stores
![Page 165: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/165.jpg)
![Page 166: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/166.jpg)
![Page 167: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/167.jpg)
![Page 168: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/168.jpg)
![Page 169: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/169.jpg)
![Page 170: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/170.jpg)
![Page 171: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/171.jpg)
let container = NSPersistentCloudKitContainer(name: "CloudKitContainer")
let local = NSPersistentStoreDescription(url: URL(fileURLWithPath: "/files/local.sqlite")) local.configuration = "Local"
let cloud = NSPersistentStoreDescription(url: URL(fileURLWithPath: "/files/cloud.sqlite")) cloud.configuration = "Cloud" cloud.cloudKitContainerOptions = NSPersistentCloudKitContainerOptions(containerIdentifier: "iCloud.com.wwdc.demo")
container.persistentStoreDescriptions = [ local, cloud ]
![Page 172: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/172.jpg)
let container = NSPersistentCloudKitContainer(name: "CloudKitContainer")
let local = NSPersistentStoreDescription(url: URL(fileURLWithPath: "/files/local.sqlite")) local.configuration = "Local"
let cloud = NSPersistentStoreDescription(url: URL(fileURLWithPath: "/files/cloud.sqlite")) cloud.configuration = "Cloud" cloud.cloudKitContainerOptions = NSPersistentCloudKitContainerOptions(containerIdentifier: "iCloud.com.wwdc.demo")
container.persistentStoreDescriptions = [ local, cloud ]
![Page 173: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/173.jpg)
let container = NSPersistentCloudKitContainer(name: "CloudKitContainer")
let local = NSPersistentStoreDescription(url: URL(fileURLWithPath: "/files/local.sqlite")) local.configuration = "Local"
let cloud = NSPersistentStoreDescription(url: URL(fileURLWithPath: "/files/cloud.sqlite")) cloud.configuration = "Cloud" cloud.cloudKitContainerOptions = NSPersistentCloudKitContainerOptions(containerIdentifier: "iCloud.com.wwdc.demo")
container.persistentStoreDescriptions = [ local, cloud ]
![Page 174: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/174.jpg)
let container = NSPersistentCloudKitContainer(name: "CloudKitContainer")
let local = NSPersistentStoreDescription(url: URL(fileURLWithPath: "/files/local.sqlite")) local.configuration = "Local"
let cloud = NSPersistentStoreDescription(url: URL(fileURLWithPath: "/files/cloud.sqlite")) cloud.configuration = "Cloud" cloud.cloudKitContainerOptions = NSPersistentCloudKitContainerOptions(containerIdentifier: "iCloud.com.wwdc.demo")
container.persistentStoreDescriptions = [ local, cloud ]
![Page 175: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/175.jpg)
let container = NSPersistentCloudKitContainer(name: "CloudKitContainer")
let local = NSPersistentStoreDescription(url: URL(fileURLWithPath: "/files/local.sqlite")) local.configuration = "Local"
let cloud = NSPersistentStoreDescription(url: URL(fileURLWithPath: "/files/cloud.sqlite")) cloud.configuration = "Cloud" cloud.cloudKitContainerOptions = NSPersistentCloudKitContainerOptions(containerIdentifier: "iCloud.com.wwdc.demo")
container.persistentStoreDescriptions = [ local, cloud ]
![Page 176: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/176.jpg)
NSPersistentCloudKitContainer — Multiple Stores
![Page 177: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/177.jpg)
NSPersistentCloudKitContainer — Multiple Stores
![Page 178: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/178.jpg)
NSPersistentCloudKitContainer — Multiple Stores
![Page 179: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/179.jpg)
NSPersistentCloudKitContainer — Multiple Stores
![Page 180: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/180.jpg)
NSPersistentCloudKitContainer — Multiple Stores
![Page 181: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/181.jpg)
NSPersistentCloudKitContainer — Multiple Stores
![Page 182: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/182.jpg)
let container = NSPersistentCloudKitContainer(name: "CloudKitContainer")
let local = NSPersistentStoreDescription(url: URL(fileURLWithPath: "/files/local.sqlite")) local.configuration = "Local"
let cloud = NSPersistentStoreDescription(url: URL(fileURLWithPath: "/files/cloud.sqlite")) cloud.configuration = "Cloud" cloud.cloudKitContainerOptions = NSPersistentCloudKitContainerOptions(containerIdentifier: "iCloud.com.wwdc.demo")
let shared = NSPersistentStoreDescription(url: URL(fileURLWithPath: "/files/shared.sqlite")) shared.configuration = "Shared" shared.cloudKitContainerOptions = NSPersistentCloudKitContainerOptions(containerIdentifier: "iCloud.com.wwdc.shared")
container.persistentStoreDescriptions = [ local, cloud, shared ]
![Page 183: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/183.jpg)
let container = NSPersistentCloudKitContainer(name: "CloudKitContainer")
let local = NSPersistentStoreDescription(url: URL(fileURLWithPath: "/files/local.sqlite")) local.configuration = "Local"
let cloud = NSPersistentStoreDescription(url: URL(fileURLWithPath: "/files/cloud.sqlite")) cloud.configuration = "Cloud" cloud.cloudKitContainerOptions = NSPersistentCloudKitContainerOptions(containerIdentifier: "iCloud.com.wwdc.demo")
let shared = NSPersistentStoreDescription(url: URL(fileURLWithPath: "/files/shared.sqlite")) shared.configuration = "Shared" shared.cloudKitContainerOptions = NSPersistentCloudKitContainerOptions(containerIdentifier: "iCloud.com.wwdc.shared")
container.persistentStoreDescriptions = [ local, cloud, shared ]
![Page 184: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/184.jpg)
let container = NSPersistentCloudKitContainer(name: "CloudKitContainer")
let local = NSPersistentStoreDescription(url: URL(fileURLWithPath: "/files/local.sqlite")) local.configuration = "Local"
let cloud = NSPersistentStoreDescription(url: URL(fileURLWithPath: "/files/cloud.sqlite")) cloud.configuration = "Cloud" cloud.cloudKitContainerOptions = NSPersistentCloudKitContainerOptions(containerIdentifier: "iCloud.com.wwdc.demo")
let shared = NSPersistentStoreDescription(url: URL(fileURLWithPath: "/files/shared.sqlite")) shared.configuration = "Shared" shared.cloudKitContainerOptions = NSPersistentCloudKitContainerOptions(containerIdentifier: "iCloud.com.wwdc.shared")
container.persistentStoreDescriptions = [ local, cloud, shared ]
![Page 185: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/185.jpg)
NSPersistentCloudKitContainer's Schema
![Page 186: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/186.jpg)
NSPersistentCloudKitContainer's Schema
Record types and entity names
![Page 187: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/187.jpg)
NSPersistentCloudKitContainer's Schema
Record types and entity names
Asset externalization
![Page 188: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/188.jpg)
NSPersistentCloudKitContainer's Schema
Record types and entity names
Asset externalization
Relationships
![Page 189: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/189.jpg)
Sample Application Data Model
Attributes content title
Relationships attachments tags
Post
Attributes thumbnail uuid
Relationships imageData post
Attachment
Attributes color name uuid
Relationships posts
Tag
Attributes data
Relationships attachment
ImageData
![Page 190: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/190.jpg)
@objc(Post) public class Post: NSManagedObject { @NSManaged public var title: String? @NSManaged public var content: String? @NSManaged public var attachments: NSSet? @NSManaged public var tags: NSSet? }
![Page 191: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/191.jpg)
@objc(Post) public class Post: NSManagedObject { @NSManaged public var title: String? @NSManaged public var content: String? @NSManaged public var attachments: NSSet? @NSManaged public var tags: NSSet? }
![Page 192: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/192.jpg)
<CKRecord: 0x7fd0b2539220; recordID=Post_UUID, values={ "CD_content" = "An example core data string"; "CD_content_ckAsset" = "<CKAsset: 0x7fd0b2515c20;...>"; "CD_title" = "An example core data string"; "CD_title_ckAsset" = "<CKAsset: 0x7fd0b240bd40;...>"; "CD_entityName" = Post; }, recordType=CD_Post>
@objc(Post) public class Post: NSManagedObject { @NSManaged public var title: String? @NSManaged public var content: String? @NSManaged public var attachments: NSSet? @NSManaged public var tags: NSSet? }
![Page 193: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/193.jpg)
<CKRecord: 0x7fd0b2539220; recordID=Post_UUID, values={ "CD_content" = "An example core data string"; "CD_content_ckAsset" = "<CKAsset: 0x7fd0b2515c20;...>"; "CD_title" = "An example core data string"; "CD_title_ckAsset" = "<CKAsset: 0x7fd0b240bd40;...>"; "CD_entityName" = Post; }, recordType=CD_Post>
@objc(Post) public class Post: NSManagedObject { @NSManaged public var title: String? @NSManaged public var content: String? @NSManaged public var attachments: NSSet? @NSManaged public var tags: NSSet? }
![Page 194: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/194.jpg)
<CKRecord: 0x7fd0b2539220; recordID=Post_UUID, values={ "CD_content" = "An example core data string"; "CD_content_ckAsset" = "<CKAsset: 0x7fd0b2515c20;...>"; "CD_title" = "An example core data string"; "CD_title_ckAsset" = "<CKAsset: 0x7fd0b240bd40;...>"; "CD_entityName" = Post; }, recordType=CD_Post>
@objc(Post) public class Post: NSManagedObject { @NSManaged public var title: String? @NSManaged public var content: String? @NSManaged public var attachments: NSSet? @NSManaged public var tags: NSSet? }
![Page 195: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/195.jpg)
@objc(Post) public class Post: NSManagedObject { @NSManaged public var title: String? @NSManaged public var content: String? @NSManaged public var attachments: NSSet? @NSManaged public var tags: NSSet? }
<CKRecord: 0x7fd0b2539220; recordID=Post_UUID, values={ "CD_content" = "An example core data string"; "CD_content_ckAsset" = "<CKAsset: 0x7fd0b2515c20;...>"; "CD_title" = "An example core data string"; "CD_title_ckAsset" = "<CKAsset: 0x7fd0b240bd40;...>"; "CD_entityName" = ImagePost; }, recordType=CD_Post>
![Page 196: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/196.jpg)
@objc(Post) public class Post: NSManagedObject { @NSManaged public var title: String? @NSManaged public var content: String? @NSManaged public var attachments: NSSet? @NSManaged public var tags: NSSet? }
<CKRecord: 0x7fd0b2539220; recordID=Post_UUID, values={ "CD_content" = "An example core data string"; "CD_content_ckAsset" = "<CKAsset: 0x7fd0b2515c20;...>"; "CD_title" = "An example core data string"; "CD_title_ckAsset" = "<CKAsset: 0x7fd0b240bd40;...>"; "CD_entityName" = ImagePost; }, recordType=CD_Post>
![Page 197: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/197.jpg)
@objc(Post) public class Post: NSManagedObject { @NSManaged public var title: String? @NSManaged public var content: String? @NSManaged public var attachments: NSSet? @NSManaged public var tags: NSSet? }
<CKRecord: 0x7fd0b2539220; recordID=Post_UUID, values={ "CD_content" = "An example core data string"; "CD_content_ckAsset" = "<CKAsset: 0x7fd0b2515c20;...>"; "CD_title" = "An example core data string"; "CD_title_ckAsset" = "<CKAsset: 0x7fd0b240bd40;...>"; "CD_entityName" = VideoPost; }, recordType=CD_Post>
![Page 198: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/198.jpg)
@objc(Post) public class Post: NSManagedObject { @NSManaged public var title: String? @NSManaged public var content: String? @NSManaged public var attachments: NSSet? @NSManaged public var tags: NSSet? }
<CKRecord: 0x7fd0b2539220; recordID=Post_UUID, values={ "CD_content" = "An example core data string"; "CD_content_ckAsset" = "<CKAsset: 0x7fd0b2515c20;...>"; "CD_title" = "An example core data string"; "CD_title_ckAsset" = "<CKAsset: 0x7fd0b240bd40;...>"; "CD_entityName" = VideoPost; }, recordType=CD_Post>
![Page 199: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/199.jpg)
@objc(Post) public class Post: NSManagedObject { @NSManaged public var title: String? @NSManaged public var content: String? @NSManaged public var attachments: NSSet? @NSManaged public var tags: NSSet? }
<CKRecord: 0x7fd0b2539220; recordID=Post_UUID, values={ "CD_content" = "An example core data string"; "CD_content_ckAsset" = "<CKAsset: 0x7fd0b2515c20;...>"; "CD_title" = "An example core data string"; "CD_title_ckAsset" = "<CKAsset: 0x7fd0b240bd40;...>"; "CD_entityName" = Post; }, recordType=CD_Post>
![Page 200: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/200.jpg)
@objc(Post) public class Post: NSManagedObject { @NSManaged public var title: String? @NSManaged public var content: String? @NSManaged public var attachments: NSSet? @NSManaged public var tags: NSSet? }
<CKRecord: 0x7fd0b2539220; recordID=Post_UUID, values={ "CD_content" = "An example core data string"; "CD_content_ckAsset" = "<CKAsset: 0x7fd0b2515c20;...>"; "CD_title" = "An example core data string"; "CD_title_ckAsset" = "<CKAsset: 0x7fd0b240bd40;...>"; "CD_entityName" = Post; }, recordType=CD_Post>
![Page 201: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/201.jpg)
@objc(Post) public class Post: NSManagedObject { @NSManaged public var title: String? @NSManaged public var content: String? @NSManaged public var attachments: NSSet? @NSManaged public var tags: NSSet? }
<CKRecord: 0x7fd0b2539220; recordID=Post_UUID, values={ "CD_content" = "An example core data string"; "CD_content_ckAsset" = "<CKAsset: 0x7fd0b2515c20;...>"; "CD_title" = "An example core data string"; "CD_title_ckAsset" = "<CKAsset: 0x7fd0b240bd40;...>"; "CD_entityName" = Post; }, recordType=CD_Post>
![Page 202: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/202.jpg)
@objc(Post) public class Post: NSManagedObject { @NSManaged public var title: String? @NSManaged public var content: String? @NSManaged public var attachments: NSSet? @NSManaged public var tags: NSSet? }
<CKRecord: 0x7fd0b2539220; recordID=Post_UUID, values={ "CD_content" = "Amazing... but brief!"; "CD_title" = "An amazing post!"; "CD_entityName" = Post; }, recordType=CD_Post>
![Page 203: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/203.jpg)
@objc(Post) public class Post: NSManagedObject { @NSManaged public var title: String? @NSManaged public var content: String? @NSManaged public var attachments: NSSet? @NSManaged public var tags: NSSet? }
<CKRecord: 0x7fd0b2539220; recordID=Post_UUID, values={ "CD_content_ckAsset" = "<CKAsset: 0x7fd0b2515c20;...>"; "CD_title" = "An amazing post!"; "CD_entityName" = Post; }, recordType=CD_Post>
![Page 204: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/204.jpg)
@objc(Post) public class Post: NSManagedObject { @NSManaged public var title: String? @NSManaged public var content: String? @NSManaged public var attachments: NSSet? @NSManaged public var tags: NSSet? }
<CKRecord: 0x7fd0b2539220; recordID=Post_UUID, values={ "CD_content_ckAsset" = "<CKAsset: 0x7fd0b2515c20;...>"; "CD_title" = "An amazing post!"; "CD_entityName" = Post; }, recordType=CD_Post>
![Page 205: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/205.jpg)
@objc(Post) public class Post: NSManagedObject { @NSManaged public var title: String? @NSManaged public var content: String? @NSManaged public var attachments: NSSet? @NSManaged public var tags: NSSet? }
![Page 206: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/206.jpg)
@objc(Post) public class Post: NSManagedObject { @NSManaged public var title: String? @NSManaged public var content: String? @NSManaged public var attachments: NSSet? @NSManaged public var tags: NSSet? }
![Page 207: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/207.jpg)
Sample Application Data Model
Attributes content title
Relationships attachments tags
Post
Attributes thumbnail uuid
Relationships imageData post
Attachment
Attributes color name uuid
Relationships posts
Tag
Attributes data
Relationships attachment
ImageData
![Page 208: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/208.jpg)
@objc(Post) public class Post: NSManagedObject { @NSManaged public var attachments: NSSet? }
@objc(Attachment) public class Attachment: NSManagedObject { @NSManaged public var post: Post? }
![Page 209: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/209.jpg)
@objc(Post) public class Post: NSManagedObject { @NSManaged public var attachments: NSSet? }
@objc(Attachment) public class Attachment: NSManagedObject { @NSManaged public var post: Post? }
![Page 210: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/210.jpg)
@objc(Post) public class Post: NSManagedObject { @NSManaged public var attachments: NSSet? }
@objc(Attachment) public class Attachment: NSManagedObject { @NSManaged public var post: Post? }
![Page 211: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/211.jpg)
@objc(Post) public class Post: NSManagedObject { @NSManaged public var attachments: NSSet? }
@objc(Attachment) public class Attachment: NSManagedObject { @NSManaged public var post: Post? }
<CKRecord: 0x7fd0b4011bf0; recordID=Attachment_UUID, values={ "CD_entityName" = Attachment; "CD_imageData" = "ImageData_UUID"; "CD_post" = "Post_UUID"; "CD_uuid" = "B7841A69-868D-49A9-851D-3BB7030DA73A"; }, recordType=CD_Attachment>
![Page 212: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/212.jpg)
@objc(Post) public class Post: NSManagedObject { @NSManaged public var attachments: NSSet? }
@objc(Attachment) public class Attachment: NSManagedObject { @NSManaged public var post: Post? }
<CKRecord: 0x7fd0b4011bf0; recordID=Attachment_UUID, values={ "CD_entityName" = Attachment; "CD_imageData" = "ImageData_UUID"; "CD_post" = "Post_UUID"; "CD_uuid" = "B7841A69-868D-49A9-851D-3BB7030DA73A"; }, recordType=CD_Attachment>
![Page 213: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/213.jpg)
@objc(Post) public class Post: NSManagedObject { @NSManaged public var attachments: NSSet? }
@objc(Attachment) public class Attachment: NSManagedObject { @NSManaged public var post: Post? }
<CKRecord: 0x7fd0b4011bf0; recordID=Attachment_UUID, values={ "CD_entityName" = Attachment; "CD_imageData" = "ImageData_UUID"; "CD_post" = "Post_UUID"; "CD_uuid" = "B7841A69-868D-49A9-851D-3BB7030DA73A"; }, recordType=CD_Attachment>
![Page 214: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/214.jpg)
Sample Application Data Model
Attributes content title
Relationships attachments tags
Post
Attributes thumbnail uuid
Relationships imageData post
Attachment
Attributes color name uuid
Relationships posts
Tag
Attributes data
Relationships attachment
ImageData
![Page 215: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/215.jpg)
@objc(Post) public class Post: NSManagedObject { @NSManaged public var tags: NSSet? }
@objc(Tag) public class Tag: NSManagedObject { @NSManaged public var posts: NSSet? }
![Page 216: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/216.jpg)
@objc(Post) public class Post: NSManagedObject { @NSManaged public var tags: NSSet? }
@objc(Tag) public class Tag: NSManagedObject { @NSManaged public var posts: NSSet? }
![Page 217: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/217.jpg)
<CKRecord: 0x7fd0b2539220; recordID=Post_UUID, values={ "CD_content" = "An example core data string"; "CD_content_ckAsset" = "<CKAsset: 0x7fd0b2515c20;...>"; "CD_title" = "An example core data string"; "CD_title_ckAsset" = "<CKAsset: 0x7fd0b240bd40;...>"; "CD_entityName" = Post; }, recordType=CD_Post>
<CKRecord: 0x7fd0b2419da0; recordID=Tag_UUID, values={ "CD_color" = {length = 17, bytes = 0x536f6d65206578616d706c652064617461}; "CD_color_ckAsset" = "<CKAsset: 0x7fd0b2532de0;...>"; "CD_name" = "An example core data string"; "CD_name_ckAsset" = "<CKAsset: 0x7fd0b24215d0;...>"; "CD_uuid" = "DEB9D10A-55C1-42EC-BA15-77A41028AF9B"; "CD_entityName" = Tag; }, recordType=CD_Tag>
![Page 218: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/218.jpg)
<CKRecord: 0x7fd0b24202f0; recordID=CDMR_UUID, values={ "CD_entityNames" = "Post:Tag"; "CD_recordNames" = "Post_UUID:Tag_UUID"; "CD_relationships" = "tags:posts"; }, recordType=CDMR>
![Page 219: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/219.jpg)
<CKRecord: 0x7fd0b24202f0; recordID=CDMR_UUID, values={ "CD_entityNames" = "Post:Tag"; "CD_recordNames" = "Post_UUID:Tag_UUID"; "CD_relationships" = "tags:posts"; }, recordType=CDMR>
![Page 220: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/220.jpg)
<CKRecord: 0x7fd0b24202f0; recordID=CDMR_UUID, values={ "CD_entityNames" = "Post:Tag"; "CD_recordNames" = "Post_UUID:Tag_UUID"; "CD_relationships" = "tags:posts"; }, recordType=CDMR>
![Page 221: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/221.jpg)
<CKRecord: 0x7fd0b24202f0; recordID=CDMR_UUID, values={ "CD_entityNames" = "Post:Tag"; "CD_recordNames" = "Post_UUID:Tag_UUID"; "CD_relationships" = "tags:posts"; }, recordType=CDMR>
![Page 222: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/222.jpg)
<CKRecord: 0x7fd0b24202f0; recordID=CDMR_UUID, values={ "CD_entityNames" = "Post:Tag"; "CD_recordNames" = "Post_UUID:Tag_UUID"; "CD_relationships" = "tags:posts"; }, recordType=CDMR>
![Page 223: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/223.jpg)
Data Modeling for Collaboration
![Page 224: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/224.jpg)
Data Modeling for Collaboration
Collaboration is not conflict resolution
![Page 225: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/225.jpg)
Data Modeling for Collaboration
Collaboration is not conflict resolution
NSPersistentCloudKitContainer resolves conflicts automatically
![Page 226: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/226.jpg)
Data Modeling for Collaboration
Collaboration is not conflict resolution
NSPersistentCloudKitContainer resolves conflicts automatically
Get better merge behavior with relationships
![Page 227: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/227.jpg)
![Page 228: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/228.jpg)
![Page 229: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/229.jpg)
![Page 230: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/230.jpg)
![Page 231: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/231.jpg)
![Page 232: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/232.jpg)
![Page 233: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/233.jpg)
![Page 234: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/234.jpg)
![Page 235: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/235.jpg)
![Page 236: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/236.jpg)
![Page 237: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/237.jpg)
![Page 238: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/238.jpg)
Data Modeling for Collaboration
![Page 239: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/239.jpg)
Data Modeling for Collaboration
Attributes content title
Relationships
Post
![Page 240: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/240.jpg)
Data Modeling for Collaboration
Avoid collisions on "flat" values
Attributes content title
Relationships
Post
![Page 241: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/241.jpg)
Data Modeling for Collaboration
Avoid collisions on "flat" values
Instead model values as contributions
Attributes title
Relationships content
Post
Attributes contribution
Relationships post
PostContent
![Page 242: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/242.jpg)
Data Modeling for Collaboration
Avoid collisions on "flat" values
Instead model values as contributions
Leverage relationships for eventual consistency Attributes
title
Relationships content
Post
Attributes contribution
Relationships post
PostContent
![Page 243: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/243.jpg)
Data Modeling for Collaboration
Avoid collisions on "flat" values
Instead model values as contributions
Leverage relationships for eventual consistency
Order contributions
Attributes contribution contributionDate
Relationships post
PostContent
Attributes title
Relationships content
Post
![Page 244: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/244.jpg)
Data Modeling for Collaboration
Avoid collisions on "flat" values
Instead model values as contributions
Leverage relationships for eventual consistency
Order contributions
Iterate as necessary
Attributes contribution contributionDate contributorID IamportTimestamp
Relationships post childContributionsparentContribution
PostContent
Attributes title
Relationships content
Post
![Page 245: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/245.jpg)
Summary
![Page 246: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/246.jpg)
Summary
Easy sync with NSPersistentCloudKitContainer
![Page 247: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/247.jpg)
Summary
Easy sync with NSPersistentCloudKitContainer
New sample code and documentation!
![Page 248: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/248.jpg)
Summary
Easy sync with NSPersistentCloudKitContainer
New sample code and documentation!
Build on NSPersistentCloudKitContainer
![Page 249: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/249.jpg)
More Information
Core Data and CloudKit Lab Tuesday, 3:00
CloudKit Lab Wednesday, 9:00
Core Data Lab Wednesday, 2:00
developer.apple.com/wwdc19/202
![Page 250: Using Core Data with CloudKit - img1.vued.vanthink.cnimg1.vued.vanthink.cn/202_using_core_data_with_cloudkit.pdf · Existing Technologies Core Data provides local persistence CloudKit](https://reader031.fdocuments.us/reader031/viewer/2022011911/5f8f94fc9dbc580b31520991/html5/thumbnails/250.jpg)