Something with #NSPersistentCloudKitContainer has been bugging me for years, and I never got around to solving it.

Looks like the initial sync on a new device might take up to 20-30 seconds to even start, all the while the app UI is showing "no data". I hate that. I would like to be able to distinguish "no data" and "data hasn't been synced yet" as soon as the app launches.

What would be a best practice for this? A separate #CKRecord that gets queried on launch?

#Swift #CKRecord #CloudKit

This is a runtime warning in CloudKit that appears when I subclass CKRecord. I guess it’s fair.

How would you work around it?

Why I subclass: some CKRecord fields, like createdAt, creatorUserRecordID and such, are set only by the CloudKit system by design. Which is fine, but I need to mock them in my tests.

Maybe @_tim______ or other CloudKit gurus have suggestions? How could I easily work with CKRecord while overriding these system fields in my tests?