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)的主要内容,如果未能解决你的问题,请参考以下文章

保存和获取 CloudKit 引用

CloudKit 记录保存进度

swift Swift - CloudKit:保存和处理错误示例

CKAsset 未保存到 CloudKit - 保存所有其他字段

将 CloudKit 记录保存到本地文件保存除 CKAsset 之外的所有字段

如何使用 Cloudkit 将字典(或任何其他复杂结构)保存到 iCloud 中?