Swift Don';我不明白为什么斯威夫特要我直截了当

Swift Don';我不明白为什么斯威夫特要我直截了当,swift,Swift,我正在测试swift,不明白为什么下面的代码行不通 let tabBarController = UITabBarController() tabBarController.viewControllers = [MyViewController1(), MyTableViewController2()] tabBarController.tabBar.items[0].title = "First" tabBarController.tabBar.items[1

我正在测试swift,不明白为什么下面的代码行不通

    let tabBarController = UITabBarController()
    tabBarController.viewControllers = [MyViewController1(), MyTableViewController2()]

    tabBarController.tabBar.items[0].title = "First"
    tabBarController.tabBar.items[1].title = "Second"
编译器告诉我:
找不到成员“title”

如果我把参数分成多个变量,那么它就可以工作了

    let tabBarController = UITabBarController()
    tabBarController.viewControllers = [MyViewController1(), MyTableViewController2()]

    let tabBar = tabBarController.tabBar 
    let tabBarItem0 = tabBar.items[0] as UITabBarItem
    let tabBarItem1 = tabBar.items[1] as UITabBarItem

    tabBarItem0.title = "First"
    tabBarItem1.title = "Second"
有人能给我解释一下为什么第一个版本不起作用吗


谢谢

正如您所意识到的,
选项卡栏。items
任何对象的数组
,它本质上是
id
。您必须像对待
那样将其降级为uitabaritem

建议使用一种更好的方法,即在开始访问之前向下转换整个阵列。所以看起来是这样的:

let tabItems = tabBar.items as [UITabBarItem]
tabItems[0].title = "First"
//...

啊-好的。谢谢-我会再看一次下行部分。