Clarification needed about CKReferences

Hi,

I need an important clarification about CKReferences .... specifically, can you save CKReferences to records that don't exist, if using CKReferenceActionNone?


The CKReference header file mentions this comment:


It is acceptable to relate two records that have not yet been uploaded to the server, but those records must be uploaded to the server in the same operation. If a record references a record that does not exist on the server and is not in the current save operation it will result in an error


This is very general, and doesn't distinguish between CKReferenceActionNone and CKReferenceActionDeleteSelf.


However, the CKModifyRecordsOperation API mentions this:

When saving a record that contains a reference whose action is
deleteSelf
, CloudKit must be able to find the target of the reference. During a save operation, CloudKit verifies that any target records actually exist in the database. If it cannot verify the existence of a target record, CloudKit reports an error and does not save the record containing the reference to that target.


This one specifically mentions CKReferenceActionDeleteSelf. So one can extrapolate that the error should *only* arise if using DeleteSelf, but not if using None?


The two comments kindof contradict each other, in that 2nd one is more specific than the first one, but it's hard to know which one to completely trust. From my testing, it does seem like if we use CKReferenceActionNone, and the target record isn't already in CloudKit and isn't part of the save operation, we don't get any errors. But is that the expected behavior? Can someone from CloudKit please confirm / clarify?