gpt4 book ai didi

swift - 从 Parse 检索到所有响应后执行操作

转载 作者:行者123 更新时间:2023-11-30 10:08:31 25 4
gpt4 key购买 nike

我有两个模型,是 PFObject 的子类:

** 配方模型

class Recipe: PFObject, PFSubclassing{
class func parseClassName() -> String {
return "Recipe"
}

@NSManaged var name: String?
var toIngredients: PFRelation! {
return relationForKey("ingredients")
}
}

** 成分模型:

class Ingredient: PFObject, PFSubclassing{
class func parseClassName() -> String {
return "Ingredient"
}
@NSManaged var category: String?
@NSManaged var ingredient: String?
@NSManaged var amount: NSNumber?
@NSManaged var unit: String?
}

我发现获取单个食谱的成分,会像这样工作:

 let query = recipe.toIngredients.query()
query.findObjectsInBackgroundWithBlock{....

我的问题是我有一系列食谱,我需要从中获取原料。我需要组合多个异步响应以在另一个 Controller 中使用。我需要获取整个成分列表,然后执行带有标识符的Segue。

我找到了这个 stackoverflow 帖子:Checking for multiple asynchronous responses from Alamofire and Swift

这是使用 Parse 和 PFRelation 的正确方法吗?

最佳答案

基本上,您需要并行执行多个任务,并在所有任务完成时收到通知。如果您使用findObjectsInBackground(),则可以实现此目的它返回一个 BFTask。获得任务数组后,您可以发送它们以并行执行(更多详细信息 here ):

let tasks = recipes.map { $0.toIngredients.query().findObjectsInBackground() }
let aggregateTask = BFTask(forCompletionOfAllTasks: tasks)
aggregateTask.continueWithBlock { task in
if task.error() {
// handle the error
} else {
// grab the results, perform the seque
}
}

关于swift - 从 Parse 检索到所有响应后执行操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34634805/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com