2014-09-12 74 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