从UITabBarItem中倒下?到 UITabBarItem 仅解开包装可选;你的意思是使用'!'错误吗



我的代码在Xcode6中运行良好。但是,在更新到Xcode7之后,我得到了近20个错误和50个警告。这可能是Swift 2中的一些语法变化

解决了所有这些,但不能弄清楚这个:Downcast from UITabBarItem ?to UITabBarItem只解包裹可选;你是想用"!"下面是实际代码:

let tabItems = tabBar.items as! [UITabBarItem]  // Error in  this line
for (index, value) in enumerate(tabItems)
{
    var imageName = imageNames[index]
    value.image = UIImage(named: imageName)
    value.imageInsets = UIEdgeInsetsMake(5.0, 0, -5.0, 0)
}

显示1个错误

当我尝试这样做时:

if let tabItems = tabBar.items as [UITabBarItem]? {
for (index, value) in tabItems.enumerate()
{
    var imageName = imageNames[index]
    value.image = UIImage(named: imageName)
    value.imageInsets = UIEdgeInsetsMake(5.0, 0, -5.0, 0)
}
}

显示5个错误::

  1. "_UTTypeCopyPreferredTagWithClass",引用自:-[PFFile _mimeType] in Parse(pfffile .o)"_UTTypeCreatePreferredIdentifierForTag",引用自:- Parse(pfffile .o)中的[PFFile _mimeType]"_kUTTagClassFilenameExtension",引用自:- Parse(pfffile .o)中的[PFFile _mimeType]"_kUTTagClassMIMEType",引用自:-[PFFile _mimeType]在Parse(pfffile .o) ld: symbol(s) not found for architecture x86_64clang:错误:链接器命令失败,退出代码1(使用-v查看调用)

请帮忙!提前感谢

如果有一些TabBarItems,则TabBarItems。items将返回一个UITabBarItem的数组。如果不是,它将返回nil(这是可选的)。因此,再次将其强制转换为[UITabBarItem]将是"愚蠢的"。这就像说:我有很多苹果,把它们变成一些苹果。但是你需要处理这个情况。Items为nil。你只需要展开标签栏。

 let tabItems = tabBar.items! 

应该能行

最新更新