[AnyObject]?没有名为“下标”的成员

伊祖鲁

我正在将核心数据数据库中的对象列表加载到表视图中。

class ScheduleViewController: UITableViewController {

    private var items: [AnyObject]?

    // MARK: - Table view data source
    override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        if let itemCount = items?.count {
            return itemCount
        }
    }

    override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCellWithIdentifier("DayScheduleCell", forIndexPath: indexPath) as DayScheduleCell

        if let act = items[indexPath.row] as Activity {
            if act.client != nil {
                // ...
            }
        }

        return cell
    }
}

数据是在闭包内部检索的,因此我已将items数组声明为可选数组,因为在第一次运行中它可能为nil。

我收到错误“ [AnyObject]?” 在此行没有名为'subscript'的成员if let act = items[indexPath.row] as? Activity

我不知道如何解决这个问题。

安东尼奥

该数组声明为:

 private var items: [AnyObject]?

所以,正如您还说的,这是可选的

swift中的anoptional是一个枚举,因此是一个类型本身-并且作为可选的类型,它可以包含nil值或包含类型的对象。

您希望将下标应用于数组,而不是可选数组,因此在使用下标之前,必须先将数组与可选数组解包

items?[indexPath.row]

但这还不是全部-您还必须使用条件下调:

as? Activity

因为先前的表达式可以计算为nil

所以写if语句的正确方法是

if let act = items?[indexPath.row] as? Activity {

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

斯威夫特:'((String)-> AnyObject?' 没有名为“下标”的成员

(字符串:AnyObject)没有名为“下标”的成员

“ PFObject”没有名为“下标”的成员

“ PFUser”没有名为“下标”的成员

AnyObject没有名为“ sort”的成员

AnyObject?没有名为“ objectAtIndex”的成员

[NSObject:AnyObject]?Xcode 6 beta 6中没有名为“下标”的成员错误

[NSObject:AnyObject]?在Xcode 6 Beta 6中没有名为“下标”的成员

'(键:AnyObject,值:AnyObject)'没有名为'subscript'的成员

Swift数组“对象”没有名为下标的成员

遍历[AnyObject]?结果没有名为generator的成员

Swift 1.2 [AnyObject]没有名为'objectForKey'的成员

'AnyObject'没有名为'contactName'的成员阻止我的循环

Swift:'((NSObject,AnyObject)'没有名为'subscript'的成员

没有名为的成员

“ UINavigationController?” 没有名为“ popToRootViewControllerAnimated”的成员

NSURLResponse没有名为allHeaderFields的成员

UIButton没有名为“ target”的成员

Swift'没有名为的成员'

UIView没有名为'delegate的成员

UIView没有名为“ setTranslatesAutoresizingMaskIntoConstraints”的成员

斯威夫特:没有名为的成员

UIPanGestureRecognizer没有名为touchesBegan的成员

NSEntityDescription没有名为“ name”的成员

“ AppDelegate”没有名为“ managedObjectContext”的成员

“ NSArray”没有名为“ append”的成员

'PFObject没有名为'subscript'的成员

Swift ViewController没有名为的成员

ViewController没有名为tipCalc的成员