我尝试使用PFObjects
数组中的项目填充表格视图:
var obj: PFObject = self.usersArray[indexPath.row]
cell.textLabel?.text = obj.objectForKey("username")
但如果我这样做,我会得到编译器错误:" AnyObject不能转换为String"
这就是我一直用Objective-C做的方式,我该怎么解决这个问题呢?
答案 0 :(得分:3)
您需要明确强制转换以避免此错误:
cell.textLabel?.text = obj.objectForKey("username") as String
这是因为obj.objectForKey(...)
返回类型为AnyObject
的对象,而Swift不允许将其隐式地转换为其他类型,而Objective-C确实如此(想象它必须写 {目标-C中的{1}} (NSString *)
。
答案 1 :(得分:0)
为什么不以更简单的方式编写代码并停止使用objectForKey
。在最新的Parse
库中,PFObject
支持使用[]
表示法(documentation)直接访问自定义对象的属性。
为什么textLabel是可选的?你应该在使用它之前解开它。因此,如果?
未被声明为可选项,请将!
替换为textLabel
或将其完全删除。
基本上你的代码看起来像这样:
var obj: PFObject = self.usersArray[indexPath.row]
cell.textLabel!.text = obj["username"] as NSString // Remove ! if textLabel is not an optional
请告诉我这是否适合您。