作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我使用以下代码在自定义私有(private) CKRecordZone
中创建 CKRecord
:
let noteZoneID = CKRecordZone.ID(zoneName: CloudKitManager.noteZoneName,
ownerName: CKCurrentUserDefaultName)
return CKRecord(recordType: Note.recordType, zoneID: noteZoneID)
这似乎工作得很好,但我收到警告:'init(recordType:zoneID:)' 已弃用:使用 init(recordType:recordID:) + CKRecord.ID(zoneID:) 代替
如果我使用这些方法,我想我必须这样做:
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
是否有特定原因?
最佳答案
自定义区域无法绕过此问题。如果您不想分配 recordName
值,可以向其传递 UUID().uuidString
。
Record ID objects are normally created automatically when you create a new record, but [...] you must create record ID objects when you want to save a record in a zone other than the default zone.
https://developer.apple.com/documentation/cloudkit/ckrecord/id
关于ios - 如何在自定义区域中创建 CKRecord 而无需指定记录名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55904084/
我是一名优秀的程序员,十分优秀!