【背景】
已有代码:
var viewControllers:NSArray = []
但是由于:
for viewController in self.viewControllers{
中需要确定对应的类型
然后for中才能用:
viewController.tabBarItem.titlePositionAdjustment
否则会报错:
swift:65:50: Value of type ‘UITabBarItem!’ has no member ‘titlePositionAdjustment’
对于上述错误,写成:
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
去试试:
var viewControllers = [UIViewController]()
结果:
好像就可以了。
【总结】
改为:
var viewControllers = [UIViewController]() for viewController in self.viewControllers{ let offset:UIOffset = viewController.tabBarItem.titlePositionAdjustment
即可正常通过xcode的编译了。
然后某个类的数组,可以写成:
var someClassArray = [SomeClassName]()
或:
var viewControllers:Array<UIViewController>
即可。
更多内容详见官网:
The Swift Programming Language (Swift 2.1): Collection Types