PromiseKit 和 CloudKit 保存(使用 Swift)
Posted
技术标签:
【中文标题】PromiseKit 和 CloudKit 保存(使用 Swift)【英文标题】:PromiseKit and CloudKit saving (using Swift) 【发布时间】:2014-09-12 22:06:52 【问题描述】:我是 PromiseKit 的新手,对如何处理多个 Promise 感到有些困惑。我正在使用 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
我得到的错误是“无法将表达式的类型 '(($T8) -> ($T8) -> $T7) -> (($T8) -> ($T7) -> $T7' 转换为输入“PMKPromise”
我不太明白错误的含义,但我希望“结果”是(结果,错误)元组的数组。
我应该如何写我的“when”语句?
干杯
尼克
【问题讨论】:
你使用的是Swift版本还是Objective-C版本的PromiseKit? 我使用的是 Pod,所以是 ObjC 版本。 Swift 版本没有 CloudKit 类。从那以后,我从开发人员那里听说这个问题还没有解决,但他正在努力解决这个问题。所以目前,没有解决方案,但希望很快。 :-) 我仍然喜欢关于如何阅读该表达式类型的一些输入,尽管 :-) 【参考方案1】:使用 PromiseKit 的 Swift 版本,它现在支持 CloudKit:
when(db.save(record1), db.save(record2)).then (record1, record2)->Void in
Swift 版本还有一个元组-when,因此您不必对结果数组进行排序。
【讨论】:
太棒了! :-) 谢谢! :-)以上是关于PromiseKit 和 CloudKit 保存(使用 Swift)的主要内容,如果未能解决你的问题,请参考以下文章
swift Swift - CloudKit:保存和处理错误示例
CKAsset 未保存到 CloudKit - 保存所有其他字段