Constants indicating the policy to apply when saving records.


enum RecordSavePolicy : Int



case ifServerRecordUnchanged

A policy that saves the record only if the local copy of the record is based on the record still on the server. The server maintains a change tag for each record automatically. When you fetch a record, that change tag is included with the rest of the record’s data. If the change tag in your local record matches the change tag of the record on the server, the save operation proceeds normally. If the server record contains a newer change tag, the record is not saved and an error of type CKError.Code.serverRecordChanged is reported.

case changedKeys

A policy that saves only those fields of the record that actually changed, overwriting any values currently on the server. Unmodified fields are left untouched.

case allKeys

A policy that saves all keys of the record (including those that have not changed) to the server, overwriting any values currently on the server. Keys present only on the server remain unchanged.