这是在延长PFQueryTableViewController的类中,我收到以下错误。行将只有PFUser
。
为什么我无法施放它?有没有解决的办法?不能下标[AnyObject]的值?与一个索引类型Int
的错误是:
Cannot subscript a value of [AnyObject]? with an index of type Int
...这条线:
var user2 = self.objects[indexPath.row] as! PFUser
这是在延长PFQueryTableViewController的类中,我收到以下错误。行将只有PFUser
。
为什么我无法施放它?有没有解决的办法?不能下标[AnyObject]的值?与一个索引类型Int
的错误是:
Cannot subscript a value of [AnyObject]? with an index of type Int
...这条线:
var user2 = self.objects[indexPath.row] as! PFUser
问题不在于演员,而是self.objects
似乎是一个可选阵列:[AnyObject]?
。
因此,如果要通过下标来访问它的值中的一个,你必须先解开数组:
var user2: PFUser
if let userObject = self.objects?[indexPath.row] {
user2 = userObject as! PFUser
} else {
//handle the case of 'self.objects' being 'nil'
}
self.objects?[indexPath.row]
使用optional chaining先解开self.objects
,然后调用它的下标。
随着斯威夫特2,你也可以使用guard statement:
var user2: PFUser
guard let userObject = self.objects?[indexPath.row] else {
//handle the case of 'self.objects' being 'nil' and exit the current scope
}
user2 = userObject as! PFUser
我的解决方法是..
我遇到同样的问题,并解决它像这样:
let scope : String = searchBar.scopeButtonTitles![searchBar.selectedScopeButtonIndex] as! String
对于你的情况,你可能会这样做:
var user2 : PFUser = self.objects![indexPath.row] as! PFUser
只需添加一个! (惊叹号)对象后,像这样:
var user2 = self.objects![indexPath.row] as! PFUser
问题解决了,我:)
我有以下行类似的问题:
array![row]
我不明白的地方这个问题来自于;如果我将row
替换为1
这样的编码,则编译并运行的代码没有任何问题。
然后,我不得不将其更改为这个欢快的想法:
array![Int(row)]
和它的工作。对于我的生活,我不明白为什么给一个数组索引-1
在理论上是合法的,但你去。下标是无符号的,对我来说是有意义的,但也许只是我;我将不得不询问Chris。
仍然给出错误,但这个工程,不知道为什么:'var user2 = self.objects![indexPath.row] as! PFUser' – user1406716
由于对象数组是可选的[AnyObject]? – Amit89
是的。感谢您的帮助。 – user1406716