我的代码在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个错误::
- "_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!
应该能行