首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在自定义区域中创建CKRecord,而不必指定记录名称?

如何在自定义区域中创建CKRecord,而不必指定记录名称?
EN

Stack Overflow用户
提问于 2019-04-29 21:07:37
回答 1查看 503关注 0票数 1

我正在使用以下代码在自定义私有CKRecordZone中创建一个CKRecord

代码语言:javascript
复制
let noteZoneID = CKRecordZone.ID(zoneName: CloudKitManager.noteZoneName,
                                 ownerName: CKCurrentUserDefaultName)
return CKRecord(recordType: Note.recordType, zoneID: noteZoneID)

这似乎工作得很好,但我得到了一个警告:'init(recordType:zoneID:)' is deprecated: Use init(recordType:recordID:) + CKRecord.ID(zoneID:) instead

如果我使用这些方法,我想我必须这样做:

代码语言:javascript
复制
let noteZoneID = CKRecordZone.ID(zoneName: CloudKitManager.noteZoneName,
                                 ownerName: CKCurrentUserDefaultName)
let recordID = CKRecord.ID(recordName: "UniqueRecordName", zoneID: noteZoneID)
return CKRecord(recordType: Note.recordType, recordID: recordID)

我使用这种方法的问题是,突然我要负责创建一个唯一的recordName,而我不明白为什么会这样。有没有另一种创建记录的方法来消除这一责任?为什么我的应用程序代码应该与recordName一起出现,有什么特别的原因吗

EN

回答 1

Stack Overflow用户

发布于 2019-04-30 19:11:44

对于自定义区域,没有办法绕过这一步。如果你不想给recordName赋值,你可以给它传递一个UUID().uuidString

记录ID对象通常是在创建新记录时自动创建的,但是... 如果要将记录保存在默认区域以外的区域中,则必须创建记录ID对象。

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

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55904084

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档