升级项目以支持Xcode 10和Swift 4.2
将项目升级到Xcode 10.1和Swift 4.2可能会导致错误和警告,因为Swift 4.2已重命名了常量,函数和类型。
当您在Xcode 10.1中打开Xcode 9项目时,您会在Xcode 10中看到一条警告消息,要求进行Swift转换。
除了使用Swift转换器,我们还可以手动进行转换:
- 首先,您需要在项目目标的“ 构建”设置中更改Swift语言版本。 默认情况下,Xcode 10支持Swift 4.2版本。
- Xcode 10支持以下Swift版本:v3,v4,v4.2
- 我们可以看到一条警告消息来更新项目设置,单击“ 执行更改”
升级到Swift 4.2:
框架更新
- 套料
1.类型
2.常数
3.功能
嵌套类型:
- UIApplicationState: UIApplicationState转换为嵌套类型,如下所示—状态嵌套在UIApplication中。
- UITabBarItemPositioning: ItemPositioning嵌套在UITabBar中。
嵌套常量:
- 通知:通知名称嵌套在UIApplicaiton中。
- UIFloatingRange: UIFloatRangeZero和UIFloatRangeInfinite嵌套在UIFloatRange中。
嵌套函数:
- 插图和图像: UIEdgeInsetsInsetRect和UIImagePNGRepresentation嵌套在实例方法内部。
- 字符串转换: CGPoint,CGSize,CGRect等使用JSONEncoder进行编码,并且可以使用JSONDecoder进行解码。
注意:—引用自WWDC 2018 会议202 。
以下是其他错误:
- “ UIApplicationLaunchOptionsKey”已重命名为“ UIApplication.LaunchOptionsKey”
- “ UIApplicationOpenURLOptionsKey”已重命名为“ UIApplication.OpenURLOptionsKey”
- UIViewController的实例方法addChildViewController()已重命名为addChild()
- UIViewController的实例方法didMove(toParentViewController:)已重命名为didMove(toParent:)
- “ UIControlState”已重命名为“ UIControl.State”
- “ UIWindowLevelAlert”已重命名为“ UIWindow.Level.alert”
- “ UIAlertActionStyle”已重命名为“ UIAlertAction.Style”
- “ UITextBorderStyle”已重命名为“ UITextField.BorderStyle”
- “ UIAlertControllerStyle”已重命名为“ UIAlertController.Style”
- “ NSAttributedStringKey”已重命名为“ NSAttributedString.Key”
- “ UITableViewCellSelectionStyle”已重命名为“ UITableViewCell.SelectionStyle”
- “ UIViewAutoresizingMask”已重命名为“ UIView.AutoresizingMask”
- “ UIWebViewNavigationType”已重命名为“ UIWebView.NavigationType”
希望本文能帮助您将项目升级到Xcode 10和Swift 4.2 。 我试图掩盖大多数错误,但是您可能会收到更多错误,您可以通过单击错误消息中的“ 修复”操作或查看Apple文档来简单地进行修复。
升级项目时,在注释部分中发布错误,而本文中未涉及这些错误。
如果您喜欢这篇文章并喜欢阅读,请拍手!!!