【背景】
已有代码:
1 | var viewControllers:NSArray = [] |
但是由于:
1 | for viewController in self.viewControllers{ |
中需要确定对应的类型
然后for中才能用:
1 | viewController.tabBarItem.titlePositionAdjustment |
否则会报错:
swift:65:50: Value of type ‘UITabBarItem!’ has no member ‘titlePositionAdjustment’
对于上述错误,写成:
1 | for viewController As UIViewController in self.viewControllers{ |
是没发解决问题的。
此处现在需要:
在定义的时候,就定义viewControllers为对应的UIViewController的数组。
【解决过程】
1.搜:
swift class array
swift UIViewController array
参考:
How to create a class array in Swift – Stack Overflow
Swift Tutorial: How to Use an Array in Swift | Making App Pie
The Swift Programming Language (Swift 2.1): Collection Types
去试试:
1 | var viewControllers = [UIViewController]() |
结果:
好像就可以了。
【总结】
改为:
1 2 3 | var viewControllers = [UIViewController]() for viewController in self.viewControllers{ let offset:UIOffset = viewController.tabBarItem.titlePositionAdjustment |
即可正常通过xcode的编译了。
然后某个类的数组,可以写成:
1 | var someClassArray = [SomeClassName]() |
或:
1 | var viewControllers:Array<UIViewController> |
即可。
更多内容详见官网:
The Swift Programming Language (Swift 2.1): Collection Types