CKRecordZoneID 是否需要每个用户都是唯一的?

Does CKRecordZoneID need to be unique per user?

CloudKit 记录区是按用户创建的,还是适用于所有人?

A CKRecordZoneID object uniquely identifies a record zone in a database.

这似乎暗示它对每个人都有影响。

A record zone ID distinguishes one zone from another by a name string and the ID of the user that created the zone.

但是,ID 附加了所有者名称这一事实,听起来像是基于每个用户?

我问的原因是我想知道我是否可以为应用程序创建一个 RecordZoneID 还是需要为每个用户存储它(在 NSUserDefaults 中)

简短的回答是区域名称只需要在用户私有数据库中的其他区域中是唯一的。

CKRecordZoneID 和区域名称之间存在细微但重要的区别。

CKRecordZoneID 在整个容器中必须是唯一的,但 CKRecordZoneID 不仅仅是区域名称。

如果您查看 CKRecordZoneID,您会发现它同时具有 zoneName 属性 和 ownerName 属性。 ownerName 是当前用户的记录 ID(或 CKOwnerDefaultName,在值发送到服务器之前被真实用户 ID 替换)。

zoneNameownerName 的组合在整个容器中必须是唯一的,但是由于每个用户都有自己唯一的用户 ID(用于 ownerName),您可以创建每个用户具有相同 zoneName 且没有任何冲突的区域。