我在这里使用RAMAnimatedTabBarController模块:https://github.com/Ramotion/animated-tab-bar
我使用Xcode 6在swift 1.2中开发了我的整个应用程序,该应用程序运行得很完美。我想尝试使用Xcode 7"侧加载"我的应用程序,它有swift 2.0。我有太多的错误,我设法解决了大部分错误,只有三个。
1) 这行代码来自RAMAnimatedTabBarController模块,当它在Xcode 6:中完美编译时,它抛出了一个错误,称无法调用该函数
var constranints = NSLayoutConstraint.constraintsWithVisualFormat(formatString,options:NSLayoutFormatOptions.DirectionRightToLeft,metrics: nil,views: containersDict as [NSObject : AnyObject])
对此的编译器错误为:
无法使用的参数列表调用"constraintsWithVisualFormat"type'(字符串,选项:NSLayoutFormatOptions,度量:nil,视图:[NSObject:AnyObject])'
2) 引发了另一个异常错误:
链接器命令失败,退出代码为1(使用-v查看调用)
3) 另一个:
(null):错误:无法分析的调试映射"/Users/Rakshith/Library/Developer/Xcode/DerivedData/Blubot heabwwmhqxxvctaabxkwcpgzsadx/Build/Inmediates/SwiftMigration/Blubot/Products/Debug iphonesimulator/BlubotTests.xctest/BlubotTest":没有这样的文件或目录
我的项目到底出了什么问题?它仍然设置为iOS 8.3。
禁用位代码
Build Settings -> BitCode
我成功地纠正了第二个和第三个错误,当您运行Xcode 7 Beta和Xcode 6时,大多数人可能会面临这个错误。只需按照本步骤中提到的步骤解决这两个错误:Xcode版本6.1(6A1030)-Apple Match O-Linker错误-构建
试试这个方法:
func createViewContainers() -> [String: UIView] {
var containersDict = [String: UIView]()
guard let tabBarItems = tabBar.items else
{
return containersDict
}
let itemsCount: Int = tabBarItems.count - 1
for index in 0...itemsCount {
let viewContainer = createViewContainer()
containersDict["container(index)"] = viewContainer
}
var formatString = "H:|-(0)-[container0]"
for index in 1...itemsCount {
formatString += "-(0)-[container(index)(==container0)]"
}
formatString += "-(0)-|"
let constranints = NSLayoutConstraint.constraintsWithVisualFormat(formatString,
options:NSLayoutFormatOptions.DirectionRightToLeft,
metrics: nil,
views: containersDict)
view.addConstraints(constranints)
return containersDict
}
如何将小代码从"containersDict as[NSObject:AnyObject]"更改为"containersDict as[String:AnyObject'"。
然后我用上面的方法解决了这个问题。