Ios PromiseKit和CloudKit储蓄(使用Swift)

Ios PromiseKit和CloudKit储蓄(使用Swift),ios,swift,cloudkit,promisekit,Ios,Swift,Cloudkit,Promisekit,我是PromiseKit的新手,对如何处理多重承诺有点困惑。我正在使用CloudKit并保存两条记录,当它们都保存时,我想在完成时做一些事情,在出错时做一些事情。我想我应该做以下事情,但是Xcode抱怨说,很明显我一定是误解了: let savePromise1 : PMKPromise = db.saveRecord(record1) let savePromise2 : PMKPromise = db.saveRecord(record2) PMKPromise.when([ savePr

我是PromiseKit的新手,对如何处理多重承诺有点困惑。我正在使用CloudKit并保存两条记录,当它们都保存时,我想在完成时做一些事情,在出错时做一些事情。我想我应该做以下事情,但是Xcode抱怨说,很明显我一定是误解了:

let savePromise1 : PMKPromise = db.saveRecord(record1)
let savePromise2 : PMKPromise = db.saveRecord(record2)

PMKPromise.when([ savePromise1, savePromise2 ]).then() { results in
    // handle success or errors
}
我得到的错误是“无法将Expersion的类型'($T8)->($T8)->$T7)->($T8)->($T7)->$T7'转换为类型'PMKPromise'

我不太明白错误的意思,但我希望“results”是一个(result,error)元组数组

我应该如何写我的“when”语句呢

干杯


Nik

使用Swift版本的PromiseKit,它现在具有CloudKit支持:

when(db.save(record1), db.save(record2)).then { (record1, record2)->Void in

}

Swift版本也有一个元组,因此您不必对结果数组进行排序。

您使用的是Swift版本还是PromiseKit的Objective-C版本?我使用的是Pod,所以是ObjC版本。Swift版本没有CloudKit类。我从开发人员那里听说这个问题尚未解决,但他正在研究中。目前没有解决方案,但希望很快解决。:-)我仍然希望能得到一些关于如何读取该表达式类型的信息,不过:-)太棒了!:-)谢谢!:-)