在Swift3中并行保存多个PFFiles

时间:2017-01-07 23:12:10

标签: ios parse-platform swift3 bolts-framework

将Swift 2项目升级到Swift 3后,我很难使用Parse的BFTask / PFFile API。

我想并行保存一些Parse文件。到目前为止,我使用BFTask.forCompletionOfAllTasks传递了由BFTask生成的PFFile.saveInBackground数组。在迁移到Swift 3之前,这很有用:

let files: [PFFile] = ...
let tasks: [BFTask] = files.map { $0.saveInBackground() }
BFTask(forCompletionOfAllTasks: tasks)
  .continueWithSuccessBlock { ... }

但是,使用Swift 3时,此功能不再有效:BFTask.forCompletionOfAllTasks现在返回BFTask<NSNumber> forCompletionOfAllTasks<BFTask<AnyObject>不接受该BFTask<NSNumber>数组<BFTask<AnyObject>

对此有任何帮助表示赞赏。如何将{{1}}转换为{{1}} - 还是有另一种方法可以解决此问题?

1 个答案:

答案 0 :(得分:0)

通过强制将图像保存任务强制转换为BFTask<AnyObject>来解决:

let tasks = files.map { $0.saveInBackground() as! BFTask<AnyObject> }

现在tasks可以传递给BFTask<AnyObject>.forCompletionOfAllTasksWithResults