我在一个开源无线电应用程序的项目中使用Spring。
代码是:
@IBInspectable var firstSelectedImage: UIImage? {
didSet {
if let image = firstSelectedImage {
var tabBarItems = self.tabBar.items as [UITabBarItem]!
tabBarItems?[0].selectedImage = image.withRenderingMode(UIImage.RenderingMode.alwaysTemplate)
}
}
}
我遇到的问题是:
var tabBarItems = self.tabBar.items as [UITabBarItem]!
Xcode抛出错误:
使用'!'此处已弃用,将在以后的版本中删除<
我需要用什么,我试过不用,我试过用?但我总是犯错误。
如有任何帮助,我们将不胜感激。
最佳答案
解决方法很简单:
一。强制拆封或强制上下投真的很不安全,可能这就是苹果删除它的原因。
var tabBarItems = self.tabBar.items as [UITabBarItem]!
更改为:
var tabBarItems = self.tabBar.items as [UITabBarItem]?
但是tabbaritem可以是零,所以我推荐一个警卫或者类似的东西。
guard var tabBarItems = self.tabBar.items as [UITabBarItem]? else { return }
示例代码:
class C1 {
}
class C2: C1 {
}
let cc2 = C2()
var firstSelectedImage: UIImage? {
didSet {
if let image = firstSelectedImage {
guard var tabBarItems = cc2 as C1? else {return}
print(tabBarItems)
}
}
}