无法将ZoneConfiguration转换为ZoneOptions

时间:2019-03-15 15:01:55

标签: ios swift cloudkit

不推荐使用ZoneOptions时,我将optionsByRecordZoneID变量更改为ZoneConfiguration,如下所示

   var optionsByRecordZoneID = [CKRecordZone.ID: CKFetchRecordZoneChangesOperation.ZoneConfiguration]()

   for zoneID in zoneIDs {
            let options = CKFetchRecordZoneChangesOperation.ZoneConfiguration()
            options.previousServerChangeToken = settings.getChangeToken(forKey: databaseTokenKey)
            optionsByRecordZoneID[zoneID] = options
        }

现在,对于optionsByRecordZoneID变量

,此行出现以下错误
let fetchRecordZoneChangesOperation = CKFetchRecordZoneChangesOperation(recordZoneIDs: zoneIDs, optionsByRecordZoneID: optionsByRecordZoneID)
  

无法转换类型'[CKRecordZone.ID的值:   CKFetchRecordZoneChangesOperation.ZoneConfiguration]'预期   参数类型'[CKRecordZone.ID:   CKFetchRecordZoneChangesOperation.ZoneOptions]?'

任何摆脱它的帮助将不胜感激。

2 个答案:

答案 0 :(得分:3)

init(recordZoneIDs:,optionsByRecordZoneID:)也被弃用,因为它占用了旧的ZoneOptions

使用init(recordZoneIDs:,configurationsByRecordZoneID:)

let fetchRecordZoneChangesOperation = CKFetchRecordZoneChangesOperation(recordZoneIDs: zoneIDs, configurationsByRecordZoneID: optionsByRecordZoneID)

答案 1 :(得分:0)

只需添加此条目即可声明接受的答案是在Xcode 10.2中完成答案的方式。请看一下。