2014-09-12 36 views
2

我是PromiseKit的新手,我对如何处理多个承诺感到困惑。我正在使用CloudKit并保存两条记录,并且当它们都保存时,我想在完成时执行一些操作,并在错误时执行其他操作。我想我应该做到以下几点,但Xcode是抱怨所以很明显,我一定误解:PromiseKit和CloudKit保存(使用Swift)

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

PMKPromise.when([ savePromise1, savePromise2 ]).then() { results in 
    // handle success or errors 
} 

我得到的错误是“不能转换的表达研究的类型“(($ T8) - >($ T8) - > $ T7) - >(($ T8) - >($ T7) - > $ T7'来键入'PMKPromise'

我真的不明白错误是什么意思,但我期待“结果”是的(结果,错误)元组数组。

我应该如何写我的“当”的说法呢?

干杯

+0

你使用Swift版本还是PromiseKit的Objective-C版本? – 2014-09-18 13:50:03

+0

我正在使用Pod,所以ObjC版本。 Swift版本没有CloudKit类。我从开发者那里听说,这个问题还没有解决,但他正在努力。所以现在,没有解决方案,但希望很快。 :-)我仍然喜欢关于如何阅读表达式类型的一些输入,但:-) – niklassaers 2014-09-19 07:10:47

回答

1

使用PromiseKit的斯威夫特版本,它现在有CloudKit支持:

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

} 

雨燕版本也有一个元组时,这样你就不必通过数组排序结果。

+0

太棒了! :-) 谢谢! :-) – niklassaers 2014-12-04 08:23:48