我有两个模型,来自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{....我的问题是,我有一系列的食谱,我需要从配料。我需要组合多个异步响应,以便在另一个控制器中使用。我需要拿出所有的配料,然后是perfromSegueWithIdentifier。
我发现了一个堆栈溢出的帖子:检查来自Alamofire和Swift的多个异步响应
这是使用Parse和PFRelation的正确方法吗?
发布于 2016-01-06 14:15:08
基本上,您需要并行执行多个任务,并在它们全部完成时得到通知。如果使用findObjectsInBackground(),则可以实现这一点,它返回一个BFTask。一旦有了任务数组,就可以将它们并行执行(更详细的这里):
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
}
}https://stackoverflow.com/questions/34634805
复制相似问题