解析/Swift-“;任何对象都不能转换为字符串

解析/Swift-“;任何对象都不能转换为字符串,swift,parse-platform,Swift,Parse Platform,我试图用PFObjects数组中的项填充表视图: var obj: PFObject = self.usersArray[indexPath.row] cell.textLabel?.text = obj.objectForKey("username") 但是如果我这样做,我会得到编译器错误:“AnyObject不能转换为String” 这就是我一直使用Objective-C的方式,我如何解决这个问题?您需要显式强制转换以避免此错误: cell.textLabel?.text = obj.

我试图用
PFObjects
数组中的项填充表视图:

var obj: PFObject = self.usersArray[indexPath.row] 
cell.textLabel?.text = obj.objectForKey("username") 
但是如果我这样做,我会得到编译器错误:“AnyObject不能转换为String”

这就是我一直使用Objective-C的方式,我如何解决这个问题?

您需要显式强制转换以避免此错误:

cell.textLabel?.text = obj.objectForKey("username") as String

这是因为
obj.objectForKey(…)
返回类型为
AnyObject
的对象,Swift不允许将其隐式转换为另一种类型,而Objective-C允许(假设必须在Objective-C中编写
(NSString*)
obj.objectForKey(…)
).

您需要显式强制转换以避免此错误:

cell.textLabel?.text = obj.objectForKey("username") as String

这是因为
obj.objectForKey(…)
返回类型为
AnyObject
的对象,Swift不允许将其隐式转换为另一种类型,而Objective-C允许(假设必须在Objective-C中编写
(NSString*)
obj.objectForKey(…)
).

您需要显式强制转换以避免此错误:

cell.textLabel?.text = obj.objectForKey("username") as String

这是因为
obj.objectForKey(…)
返回类型为
AnyObject
的对象,Swift不允许将其隐式转换为另一种类型,而Objective-C允许(假设必须在Objective-C中编写
(NSString*)
obj.objectForKey(…)
).

您需要显式强制转换以避免此错误:

cell.textLabel?.text = obj.objectForKey("username") as String

这是因为
obj.objectForKey(…)
返回类型为
AnyObject
的对象,Swift不允许将其隐式转换为另一种类型,而Objective-C允许(假设必须在Objective-C中编写
(NSString*)
obj.objectForKey(…)
).

为什么不以更简单的方式编写代码,并停止使用
objectForKey
。在最新的
Parse
库中,
PFObject
支持使用
[]
符号()直接访问自定义对象的属性

还有,为什么textLabel是可选的?你应该在使用前把它拆开。因此,将
替换为
textlab
未声明为可选项,则将其完全删除

基本上,您的代码可以如下所示:

var obj: PFObject = self.usersArray[indexPath.row] 
cell.textLabel!.text = obj["username"] as NSString // Remove ! if textLabel is not an optional

让我知道这是否适合您。

为什么不以更简单的方式编写代码,并停止使用
objectForKey
。在最新的
Parse
库中,
PFObject
支持使用
[]
符号()直接访问自定义对象的属性

还有,为什么textLabel是可选的?你应该在使用前把它拆开。因此,将
替换为
textlab
未声明为可选项,则将其完全删除

基本上,您的代码可以如下所示:

var obj: PFObject = self.usersArray[indexPath.row] 
cell.textLabel!.text = obj["username"] as NSString // Remove ! if textLabel is not an optional

让我知道这是否适合您。

为什么不以更简单的方式编写代码,并停止使用
objectForKey
。在最新的
Parse
库中,
PFObject
支持使用
[]
符号()直接访问自定义对象的属性

还有,为什么textLabel是可选的?你应该在使用前把它拆开。因此,将
替换为
textlab
未声明为可选项,则将其完全删除

基本上,您的代码可以如下所示:

var obj: PFObject = self.usersArray[indexPath.row] 
cell.textLabel!.text = obj["username"] as NSString // Remove ! if textLabel is not an optional

让我知道这是否适合您。

为什么不以更简单的方式编写代码,并停止使用
objectForKey
。在最新的
Parse
库中,
PFObject
支持使用
[]
符号()直接访问自定义对象的属性

还有,为什么textLabel是可选的?你应该在使用前把它拆开。因此,将
替换为
textlab
未声明为可选项,则将其完全删除

基本上,您的代码可以如下所示:

var obj: PFObject = self.usersArray[indexPath.row] 
cell.textLabel!.text = obj["username"] as NSString // Remove ! if textLabel is not an optional

让我知道这是否适用于您。

与您的问题无关,但您可以使用
obj[“用户名”]
的较短语法,而不是与您的问题无关的
obj.objectForKey(“用户名”)
:),但您可以使用
obj[“用户名”]
的较短语法,而不是
obj.objectForKey(“用户名”)
:)与您的问题无关,但您可以使用
obj[“用户名”]
的较短语法代替
obj.objectForKey(“用户名”)
:)与您的问题无关,但您可以使用
obj[“用户名”]
的较短语法代替
obj.objectForKey(“用户名”)