这是在一个扩展PFQueryTableViewController的类中,我得到了以下错误。行将仅为PFUser
。
为什么我不能施展?有什么办法吗?
错误为:
Cannot subscript a value of [AnyObject]? with an index of type Int
...对于此行:
var user2 = self.objects[indexPath.row] as! PFUser
这是在一个扩展PFQueryTableViewController的类中,我得到了以下错误。行将仅为PFUser
。
为什么我不能施展?有什么办法吗?
错误为:
Cannot subscript a value of [AnyObject]? with an index of type Int
...对于此行:
var user2 = self.objects[indexPath.row] as! PFUser
5条答案
按热度按时间xqnpmsa81#
问题不在于类型转换,而在于
self.objects
似乎是一个可选数组:因此,如果要通过下标访问它的某个值,必须首先展开数组:表达式
self.objects?[indexPath.row]
使用optional chaining首先展开self.objects
,然后调用其下标。从Swift 2开始,您还可以使用guard语句:
svgewumm2#
我遇到了同样的问题,并解决了它这样:
对于您的情况,您可以:
xcitsw883#
我的解决方法是...
1.如果您确定表视图将仅包含用户,请尝试将对象Array of AnyObject类型转换为Array of PFUser.,然后使用它。
wsewodh24#
只需在对象后添加一个!(感叹号),如下所示:
这就为我解决了问题:)
bqujaahr5#
下面的代码行也有类似的问题:
我不明白问题从何而来;如果我将
row
替换为1
这样的数字,则代码编译和运行时不会出现任何问题。然后我有一个快乐的想法改变它:
我一直不明白为什么给一个数组一个
-1
的索引在理论上是法律的的,但是你看,对我来说,下标是无符号的是有道理的,但是也许只是我;我得问问Chris。