"Ambiguous use of 'firesOnRecordCreation'" 进行 CKQuerySubscription 时

"Ambiguous use of 'firesOnRecordCreation'" when making a CKQuerySubscription

Xcode 抛出一个非常模糊的错误:

Ambiguous use of 'firesOnRecordCreation'

创建 CKQuerySubscription 时。实际上,它会在添加到该调用的每个选项上执行此操作。那是编译器错误吗?解决方案?

let predicate = NSPredicate(value: true)
let subscriptionID = "notes-changed"
let noteSubscription = CKQuerySubscription(recordType: "Notes",
                                                   predicate: predicate,
                                                   subscriptionID: subscriptionID,
                                                   options: [.firesOnRecordCreation,
                                                             .firesOnRecordDeletion,
                                                             .firesOnRecordUpdate])

您使用的 Xcode 和 Swift 是哪个版本?如果您在 Swift 5,您需要使用完整的 CKQuerySubscription.Options 名称,如下所示:

let noteSubscription = CKQuerySubscription(
  recordType: "Notes", 
  predicate: NSPredicate(value: true), 
  subscriptionID: "notes-changed", 
  options: [
    CKQuerySubscription.Options.firesOnRecordCreation, 
    CKQuerySubscription.Options.firesOnRecordUpdate, 
    CKQuerySubscription.Options.firesOnRecordDeletion
  ]
)

希望对您有所帮助。