Why does this function not sort the data?

func getStates(completionQueue: DispatchQueue = .main, completionHandler: @escaping (Result<[StateList], Error>) -> Void) {

var fetchedStates: [StateList] = []

let predicate = NSPredicate(value: true)
let sort = NSSortDescriptor(key: "name", ascending: true)

let query = CKQuery(recordType: "StateList", predicate: predicate)
let queryOperation = CKQueryOperation(query: query)
query.sortDescriptors = [sort]


queryOperation.recordMatchedBlock = { (recordID, recordResult) in
    if let record = try? recordResult.get() as CKRecord {
        var stateList = StateList(recordID: record.recordID)
        stateList.recordID = record.recordID
        stateList.id = record["id"] as? String ?? ""
        stateList.name = record["name"] as? String ?? ""
        stateList.initial = record["initial"] as? String ?? ""
        
        fetchedStates.append(stateList)
        print(record.recordID)
    }
    print("recordMatchedBlock")
}

queryOperation.queryResultBlock = { result in
    DispatchQueue.main.async {
        switch result {
        case .success:
            completionHandler(.success(fetchedStates))
        case .failure(let error):
            completionHandler(.failure(error))
        }
    }
}

database.add(queryOperation)

}

Move query.sortDescriptors = [sort] before the statement let queryOperation = CKQueryOperation(query: query)

Why does this function not sort the data?
 
 
Q