Fix deprecation warnings in RSCore.

This commit is contained in:
Brent Simmons 2024-11-08 18:56:43 -08:00
parent 83aa995d42
commit a4baafd6dc

View File

@ -179,18 +179,25 @@ public extension CloudKitZone {
op.desiredKeys = desiredKeys
}
op.recordFetchedBlock = { record in
op.recordMatchedBlock = { recordID, recordResult in
switch recordResult {
case .success(let record):
records.append(record)
case .failure(let error):
os_log(.error, log: self.log, "query recordMatchedBlock error recordID: %@ error: %@", recordID, error.localizedDescription)
}
}
op.queryCompletionBlock = { [weak self] (cursor, error) in
guard let self = self else {
op.queryResultBlock = { [weak self] result in
guard let self else {
completion(.failure(CloudKitZoneError.unknown))
return
}
switch CloudKitZoneResult.resolve(error) {
case .success:
switch result {
case .success(let cursor):
DispatchQueue.main.async {
if let cursor = cursor {
self.query(cursor: cursor, desiredKeys: desiredKeys, carriedRecords: records, completion: completion)
@ -198,6 +205,11 @@ public extension CloudKitZone {
completion(.success(records))
}
}
case .failure(let error):
switch CloudKitZoneResult.resolve(error) {
case .zoneNotFound:
self.createZoneRecord() { result in
switch result {
@ -209,18 +221,22 @@ public extension CloudKitZone {
}
}
}
case .retry(let timeToWait):
os_log(.error, log: self.log, "%@ zone query retry in %f seconds.", self.zoneID.zoneName, timeToWait)
self.retryIfPossible(after: timeToWait) {
self.query(ckQuery, desiredKeys: desiredKeys, completion: completion)
}
case .userDeletedZone:
DispatchQueue.main.async {
completion(.failure(CloudKitZoneError.userDeletedZone))
}
default:
DispatchQueue.main.async {
completion(.failure(CloudKitError(error!)))
completion(.failure(CloudKitError(error)))
}
}
}
}
@ -239,18 +255,24 @@ public extension CloudKitZone {
op.desiredKeys = desiredKeys
}
op.recordFetchedBlock = { record in
op.recordMatchedBlock = { recordID, recordResult in
switch recordResult {
case .success(let record):
records.append(record)
case .failure(let error):
os_log(.error, log: self.log, "query cursor recordMatchedBlock error recordID: %@ error: %@", recordID, error.localizedDescription)
}
}
op.queryCompletionBlock = { [weak self] (newCursor, error) in
op.queryResultBlock = { [weak self] result in
guard let self = self else {
completion(.failure(CloudKitZoneError.unknown))
return
}
switch CloudKitZoneResult.resolve(error) {
case .success:
switch result {
case .success(let newCursor):
DispatchQueue.main.async {
if let newCursor = newCursor {
self.query(cursor: newCursor, desiredKeys: desiredKeys, carriedRecords: records, completion: completion)
@ -258,6 +280,10 @@ public extension CloudKitZone {
completion(.success(records))
}
}
case .failure(let error):
switch CloudKitZoneResult.resolve(error) {
case .zoneNotFound:
self.createZoneRecord() { result in
switch result {
@ -280,7 +306,8 @@ public extension CloudKitZone {
}
default:
DispatchQueue.main.async {
completion(.failure(CloudKitError(error!)))
completion(.failure(CloudKitError(error)))
}
}
}
}
@ -358,12 +385,21 @@ public extension CloudKitZone {
op.isAtomic = false
op.qualityOfService = Self.qualityOfService
op.modifyRecordsCompletionBlock = { [weak self] (_, _, error) in
op.modifyRecordsResultBlock = { [weak self] result in
guard let self = self else { return }
switch result {
case .success:
DispatchQueue.main.async {
completion(.success(()))
}
case .failure(let error):
switch CloudKitZoneResult.resolve(error) {
case .success, .partialFailure:
case .partialFailure:
DispatchQueue.main.async {
completion(.success(()))
}
@ -414,7 +450,8 @@ public extension CloudKitZone {
default:
DispatchQueue.main.async {
completion(.failure(CloudKitError(error!)))
completion(.failure(CloudKitError(error)))
}
}
}
}
@ -466,16 +503,24 @@ public extension CloudKitZone {
let op = CKQueryOperation(query: ckQuery)
op.qualityOfService = Self.qualityOfService
op.recordFetchedBlock = { record in
op.recordMatchedBlock = { recordID, recordResult in
switch recordResult {
case .success(let record):
records.append(record)
case .failure(let error):
os_log(.error, log: self.log, "delete query recordMatchedBlock error recordID: %@ error: %@", recordID, error.localizedDescription)
}
}
op.queryCompletionBlock = { [weak self] (cursor, error) in
op.queryResultBlock = { [weak self] result in
guard let self = self else {
completion(.failure(CloudKitZoneError.unknown))
return
}
switch result {
case .success(let cursor):
if let cursor = cursor {
self.delete(cursor: cursor, carriedRecords: records, completion: completion)
@ -491,6 +536,9 @@ public extension CloudKitZone {
self.modify(recordsToSave: [], recordIDsToDelete: recordIDs, completion: completion)
}
case .failure(let error):
completion(.failure(error))
}
}
database?.add(op)
@ -503,15 +551,24 @@ public extension CloudKitZone {
let op = CKQueryOperation(cursor: cursor)
op.qualityOfService = Self.qualityOfService
op.recordFetchedBlock = { record in
op.recordMatchedBlock = { recordID, recordResult in
switch recordResult {
case .success(let record):
records.append(record)
case .failure(let error):
os_log(.error, log: self.log, "delete cursor recordMatchedBlock error recordID: %@ error: %@", recordID, error.localizedDescription)
}
}
op.queryCompletionBlock = { [weak self] (cursor, error) in
op.queryResultBlock = { [weak self] result in
guard let self = self else {
completion(.failure(CloudKitZoneError.unknown))
return
}
switch result {
case .success(let cursor):
records.append(contentsOf: carriedRecords)
@ -521,7 +578,9 @@ public extension CloudKitZone {
let recordIDs = records.map { $0.recordID }
self.modify(recordsToSave: [], recordIDsToDelete: recordIDs, completion: completion)
}
case .failure(let error):
completion(.failure(error))
}
}
database?.add(op)
@ -588,18 +647,24 @@ public extension CloudKitZone {
op.isAtomic = true
op.qualityOfService = Self.qualityOfService
op.modifyRecordsCompletionBlock = { [weak self] (_, _, error) in
op.modifyRecordsResultBlock = { [weak self] result in
guard let self = self else {
completion(.failure(CloudKitZoneError.unknown))
return
}
switch CloudKitZoneResult.resolve(error) {
switch result {
case .success:
DispatchQueue.main.async {
completion(.success(()))
}
case .failure(let error):
switch CloudKitZoneResult.resolve(error) {
case .zoneNotFound:
self.createZoneRecord() { result in
switch result {
@ -675,7 +740,8 @@ public extension CloudKitZone {
default:
DispatchQueue.main.async {
completion(.failure(CloudKitError(error!)))
completion(.failure(CloudKitError(error)))
}
}
}
}
@ -701,28 +767,31 @@ public extension CloudKitZone {
savedChangeToken = token
}
op.recordChangedBlock = { record in
op.recordWasChangedBlock = { recordID, result in
if let record = try? result.get() {
changedRecords.append(record)
}
}
op.recordWithIDWasDeletedBlock = { recordID, recordType in
let recordKey = CloudKitRecordKey(recordType: recordType, recordID: recordID)
deletedRecordKeys.append(recordKey)
}
op.recordZoneFetchCompletionBlock = { zoneID ,token, _, _, error in
if case .success = CloudKitZoneResult.resolve(error) {
op.recordZoneFetchResultBlock = { recordZoneID, result in
if let (token, _, _) = try? result.get() {
savedChangeToken = token
}
}
op.fetchRecordZoneChangesCompletionBlock = { [weak self] error in
op.fetchRecordZoneChangesResultBlock = { [weak self] result in
guard let self = self else {
completion(.failure(CloudKitZoneError.unknown))
return
}
switch CloudKitZoneResult.resolve(error) {
switch result {
case .success:
DispatchQueue.main.async {
self.delegate?.cloudKitDidModify(changed: changedRecords, deleted: deletedRecordKeys) { result in
@ -735,6 +804,10 @@ public extension CloudKitZone {
}
}
}
case .failure(let error):
switch CloudKitZoneResult.resolve(error) {
case .zoneNotFound:
self.createZoneRecord() { result in
switch result {
@ -762,10 +835,10 @@ public extension CloudKitZone {
}
default:
DispatchQueue.main.async {
completion(.failure(CloudKitError(error!)))
completion(.failure(CloudKitError(error)))
}
}
}
}
database?.add(op)