我在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
文档,但老实说我不知道自己在做什么。这是我的第一个应用程序。
答案 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")
,这应该可以让您获得该用户信息。