выполнить (_:inZoneWith:completionHandler:) устарело? или нет? iOS 15
В бета-версии Xcode 13 для iOS 15 я получаю сообщение о том, что (CloudKit) устарел в iOS 15 и переименован в Однако ...
Веб-сайт 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:
но я как бы потерялся, заставляя его работать ..
(Эта функция просто удаляет записи из частной базы данных iCloud):
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
}
}
}
}
Да, я никогда не беспокоился о завершении .success ...
Любое понимание ценится ..
Спасибо
1 ответ
Я нахожусь в бета-версии 5, и я все еще получаю это предупреждение, но метод не был реализован, поэтому похоже, что они не осуждают старый и просто забыли удалить предупреждение. У нас должна быть финальная версия Xcode через несколько дней.