我正在尝试从解析中的信息更新用户名标签。我无法弄清楚并且已经挣扎了很长一段时间,而我的工作并没有。
let query = PFUser.query()!
query.whereKey("objectId", equalTo: (quote["publisher"] as! String))
query.getFirstObjectInBackgroundWithBlock({ (user: PFObject?, error: NSError?) in
if error == nil{
let user:PFUser = (objects as NSArray).lastObject as! PFUser//error here
cell.publisherLabel.text = user.username
}
})
我得到的错误是使用未解析的标识符'对象'
答案 0 :(得分:0)
你没有在那个闭包中返回一个数组,你正在返回一个可选的PFObject。
let query = PFUser.query()!
query.whereKey("objectId", equalTo: (quote["publisher"] as! String))
query.getFirstObjectInBackgroundWithBlock({ (user: PFObject?, error: NSError?) in
if error == nil{
if let foundUser = user as? PFUser {
cell.publisherLabel.text = foundUser.username
}
}
})
//更新了
func someFunc() {
let query = PFUser.query()
query?.getObjectInBackgroundWithId("objectId", block: { (foundUser: PFObject?, error: NSError?) -> Void in
if let user = foundUser as? PFUser {
cell.publisherLabel.text = user.username
}
})
}
您不需要查询,只需从您拥有的对象获取指针并调用fetchIfNeeded或在后台或者您想要处理它。示例:
var myObject = existingObjectWithPointer["pointerColumnName"] as? PFObject
myObject.fetchIfNeeded()