CloudKit: 'fetchRecordsCompletionBlock' was deprecated in iOS 15.0: Use fetchRecordsResultBlock instead?

654 views Asked by At

I'm using this library to encode and decode custom structs using CloudKit however, ran into this depreciation and the library hasn't been updated. How can I rewrite this block below?

   private func fetchAllAssociatedRecords(fromReferences references: [CKRecord.Reference],
                                           recordsStack records: [CKRecord],
                                           referenceDatabase database: CKDatabase,
                                           completion: @escaping ([CKRecord]?, CKCodableError?) -> Void) {
        let query = CKFetchRecordsOperation(recordIDs: references.map { $0.recordID })
  //problem line --> query.fetchRecordsCompletionBlock = { (recordsDictionary, error) in
            if let receivedError = error {
                let error = CKCodableError.error(fromCloudkitError: receivedError)
                completion(nil, error)
                return
            }

            if let fetchedRecordsDictionary = recordsDictionary {
                let fetchedRecords = fetchedRecordsDictionary.map { $0.value }
                self.fetchReferences(fromRecords: fetchedRecords,
                                     andAppendTo: records,
                                     withReferenceDatabase: database,
                                     completion: completion)

            } else {
                let error = CKCodableError(.cloudkitInconsistence)
                completion(nil, error)
            }
        }
        database.add(query)
    }
0

There are 0 answers