升级项目以支持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文档来简单地进行修复。

升级项目时,在注释部分中发布错误,而本文中未涉及这些错误。

如果您喜欢这篇文章并喜欢阅读,请拍手!!!