我用数组填充tableView但我似乎无法使用行的对象设置textLabel属性 . 这是相关的代码:
let object = realMatches[indexPath.row]
userName = object["first_name"] as! String
cell.textLabel?.text = userName
return cell
当我尝试设置userName变量(稍后将用于设置cell.textLabel属性)时出现以下错误: unexpectedly found nil while unwrapping an Optional value
我的realMatches数组返回结果,所以我知道数组不是nil . 我认为问题是我的Matches表中没有“名字”属性 . 它位于我的User表中,但我在Matches表中有一个指向相应用户的Pointer值 . 我正在使用Parse作为我的后端 .
我尝试使用冗长的PFQuery来获取对象的first_name但它似乎没有得到任何结果:
var objectUser1 = object["user1"] as! PFUser
var objectUser2 = object["user2"] as! PFUser
var userQuery = PFQuery(className: "User")
userQuery.whereKey("objectId", equalTo: objectUser1.objectId!)
var userQuery2 = PFQuery(className: "User")
userQuery2.whereKey("objectId", equalTo: objectUser2.objectId!)
var query = PFQuery.orQueryWithSubqueries([userQuery, userQuery2])
query.includeKey("user1")
query.includeKey("user2")
query.findObjectsInBackgroundWithBlock{
(results: [AnyObject]?, error: NSError?) -> Void in
if error != nil {
println(error)
} else {
if results != nil {
for result in results!{
userName = result["first_name"] as! String
}
}
}
}
关于如何将单元格的textLabel属性正确设置为匹配名的任何想法?
谢谢!
编辑:添加realMatches的数据结构 . 这是我println(realMatches)时的输出:
<Match: 0x7fa03b5a6610, objectId: Fq2OAOeggC, localId: (null)> {
user1 = "<PFUser: 0x7fa03b75e7b0, objectId: aElMSjGRxM>";
user2 = "<PFUser: 0x7fa03b7b9310, objectId: lJTRi8el8w>";
}, <Match: 0x7fa03b561d80, objectId: KDJ6hG1V4f, localId: (null)> {
user1 = "<PFUser: 0x7fa03b7b9ca0, objectId: aElMSjGRxM>";
user2 = "<PFUser: 0x7fa03b47d670, objectId: w1uKRErtDm>";
}]
这是实际的后端数据结构:
比赛表:
-objectID
-user1(指针)
-user2(指针)
用户表:
-objectID
-名字