如何解决perform(_:inZoneWith:completionHandler:) 已弃用?或不? iOS 15
在 iOS 15 的 Xcode 13 测试版中,我收到一条消息,指出 perform(_:inZoneWith:completionHandler:)
(CloudKit) 在 iOS 15 中已弃用并重命名为 fetchRecords(matching:inZoneWith:desiredKeys:resultsLimit:completionHandler:)
但是...
-
Apple Docs 网站未声明此方法已弃用:https://developer.apple.com/documentation/cloudkit/ckdatabase/1449127-perform
-
Apple 展示了 iOS 15 的其他弃用(另一种方法):https://developer.apple.com/documentation/cloudkit/ckdatabase/3794331-records/
-
fetchRecords(matching:inZoneWith:desiredKeys:resultsLimit:completionHandler:)
似乎不存在...还...(Value of type 'CKDatabase' has no member 'fetchRecords'
)
那么,这只是因为它是测试版的错误消息吗?我是否应该担心重写使用 perform(_:inZoneWith:completionHandler:)
的函数?
这是我的函数,我尝试将其调整为 fetchRecords,但它不存在。我尝试将其调整为 fetch(withQuery:completionHandler:
但我有点迷失了它的工作..
let container = CKContainer(identifier: "MyContainerNameHere")
let recordtype = "dbname"
//delete all saved icloud records
let query = CKQuery(recordtype: recordtype,predicate: nspredicate(value: true))
container.privateCloudDatabase.perform(query,inZoneWith: nil) { (rec,err) in
if let err = err {
print(err.localizedDescription)
completion(.failure(err))
return
}
guard let rec = rec else {
completion(.failure(CloudKitHelperError.castFailure))
return
}
for record in rec {
container.privateCloudDatabase.delete(withRecordID: record.recordID) { (recordId,err) in
if let err = err {
print(err.localizedDescription)
completion(.failure(err))
return
}
guard recordId != nil else {
completion(.failure(CloudKitHelperError.recordIDFailure))
return
}
}
}
}
任何见解表示赞赏..
谢谢
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。