如何在Parse中识别与某个对象关联的用户?

时间:2015-08-11 03:39:19

标签: ios swift parse-platform

我在Product中有一个Parse课程,我正在尝试在选中时识别与产品相关联的用户及其电子邮件。在我的Product课程中,我确实有一个用户指针。

这是我到目前为止所做的:

func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {


        let product: PFObject = PFObject(className: "Product")

        let createdBy: AnyObject! = product.objectForKey("user")?.email



        println("You selected cell #\(indexPath.row), created by \(createdBy)!")

代码只为createdBy值提供了“nil”。

我尝试过关注Parse文档,但老实说我不知道​​自己在做什么。这是我的第一个应用程序。

2 个答案:

答案 0 :(得分:2)

您需要做的是为每个产品对象保存userID。实际上,当您创建新的解析用户对象时,每个用户都已经拥有一个名为objectId的属性。您可以使用此唯一标识符在每个产品对象中设置为名为userID的属性。或者,如果您希望将其作为用户的电子邮件,请确保将电子邮件存储到用户:

let user = PFUser()
// Fill in the rest here...
user.setObject("someone@somewhere.com", forKey: "email")
user.save()

然后在您创建购买对象时(确保您在下方user实例化

let product = PFProduct()
// Fill in the rest here...
product.setObject(user["email"], forKey: "purchaserEmail")
product.save()

那么当您尝试检查与该产品的购买者相关的电子邮件时

func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {

    let product: PFProduct = self.products.objectAtIndex(indexPath.row) as! PFProduct

    var purchaserEmail: String = product["purchaserEmail"]

    println("Go spam \(purchaserEmail) more.")
}

如果您想将其保存到产品对象,则可以使用用户的用户名执行相同的操作。希望这有帮助!

答案 1 :(得分:1)

我认为在您的查询中,您从Parse中提取信息,您需要使用includeKey参数。

看起来像这样:

query.includeKey("user"),这应该可以让您获得该用户信息。