Mistake about CKReference in Using Core Data With CloudKit (WWDC 2019)

The presenter says "you might be wondering why we don't do this with CKReference instead. And that's because CKReference has some limitations that we don't think work well for Core Data clients. Namely that it's limited to 750 total objects."

However, that isn't correct, the 750 limit is only for references that have a delete action:

https://developer.apple.com/documentation/cloudkit/ckrecord/reference

Important

There is a hard limit to the number of references with a CKRecord.ReferenceAction.deleteSelf action that any one record can have. This limit is 750 references, and any attempt to exceed it results in an error from the server.

This is why the Notes app has no issue with more than 750 note records with a reference to a folder record.

I really wish NSPersistentCloudKitContainer had used CKReference and also that _CKReferenceActionValidate was made public. CKShare has limitations too, yet it used that and there was no custom sharing done like custom references were done.

Mistake about CKReference in Using Core Data With CloudKit (WWDC 2019)
 
 
Q