выполнить (_:inZoneWith:completionHandler:) устарело? или нет? iOS 15

В бета-версии Xcode 13 для iOS 15 я получаю сообщение о том, что (CloudKit) устарел в iOS 15 и переименован в Однако ...

  1. Веб-сайт Apple Docs не объявляет этот метод устаревшим: https://developer.apple.com/documentation/cloudkit/ckdatabase/1449127-perform

  2. Apple показывает другие устаревшие версии iOS 15 (другой метод): https://developer.apple.com/documentation/cloudkit/ckdatabase/3794331-records/

  3. 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 через несколько дней.

Другие вопросы по тегам