是否为每个用户创建了Cloudkit记录区域,或者它是否适用于所有人?
CKRecordZoneID对象唯一标识数据库中的记录区域。
这似乎意味着它对每个人都有影响。
记录区域ID通过名称字符串和创建区域的用户的ID区分一个区域与另一个区域。
但是,ID附加所有者名称的事实,使其听起来像每个用户一样?
我问的原因是我想知道我是否可以为应用创建一个RecordZoneID,或者是否需要按用户存储(在NSUserDefaults中)
答案 0 :(得分:2)
简短的回答是,区域名称只需要在用户私有数据库中的其他区域中是唯一的。
CKRecordZoneID
和区域名称之间存在微妙但重要的区别。
CKRecordZoneID
在整个容器中必须是唯一的,但CKRecordZoneID
不仅仅是区域名称。
如果查看CKRecordZoneID
,您会发现它同时具有zoneName
属性和ownerName
属性。 ownerName
是当前用户(或CKOwnerDefaultName
的记录ID,在将值发送到服务器之前,它将被真实用户ID替换。
zoneName
和ownerName
的组合在整个容器中必须是唯一的,但由于每个用户都有自己唯一的用户ID(用于ownerName
),因此您可以创建一个区域每个用户使用相同的zoneName
并且没有任何冲突。