我有一个带有多个变量的Struct,包括recordID:CKRecord.ID和record:CKRecord。我对结构的初始化函数使用CKFetchRecordsOperation查询CloudKit数据库,以询问是否存在ID = recordID的记录。如果是这样,我想获取它并对其初始化记录变量;否则,我将创建一个新记录。我正在尝试在似乎合适的提取操作的perRecordCompletionBlock中进行赋值,但是编译器拒绝此操作并出现以下错误:具有隐式捕获的inout参数的嵌套函数只能用作非转义参数。我该如何处理?
我尝试在多个地方使用@转义,但没有效果。
这是我的完成块-self是提到的结构,ckRecord是CKRecord类型的变量,createRecord会构建一个新的CKRecord并将其分配给ckRecord。
func myCompletion(record:CKRecord?, recordID:CKRecord.ID?, error:Error?) -> () {
if error == nil {
self.ckRecord = record!
} else {
createRecord()
}
}