难以转换为 Swift 3
Difficulties converting to Swift 3
从 Swift 2 转换为 Swift 3 之后(即使在将 edit-> convert -> 转换为当前 swift 语法之后)我遇到了很多错误。特别是:
在我下载此测试版 Xcode 8.0 并转换为 Swift 3
之前,我的项目在 Swift 2 中运行良好,总共显示 90 个错误
这是我犯的转换错误吗?
其中大部分都可以轻松修复,只需点击红色按钮,Xcode 就会为您修复!其他包括:
CGRect
Swift 2:
let frame = CGRectMake(0, 0, 20, 20)
Swift 3:
let frame = CGRect(x: 0, y: 0, width: 20, height: 20)
CGPoint
Swift 2:
let point = CGPointMake(0, 0)
Swift 3:
let point = CGPoint(x: 0, y: 0)
CGSize
Swift 2:
let size = CGSizeMake(20, 20)
Swift 3:
let size = CGSize(width: 20, height: 20)
CGRectGetMidX
Swift 2:
CGRectGetMidX(view)
Swift 3:
view.midX
CGRectGetMidY
Swift 2:
CGRectGetMidY(view)
Swift 3:
view.midY
UIColor
Swift 2:
let color = UIColor.redColor()
Swift 3:
let color = UIColor.red
"NS"
Swift 2:
NSTimer
NSData
NSError
Swift 3:
Timer
Data
Error
用户默认值
Swift 2:
NSUserDefaults.standardUserDefaults().//something
Swift 3:
UserDefaults.standard.//something
并始终记得使用有用的 "Fix all in Scope" 功能,该功能可在编辑器 -> 范围内全部修复
中找到
我正在转换一个项目,但 Xcode 没有帮助我进行任何修复,所以我求助于几个正则表达式搜索和替换:-
CGPointMake\((.*),[ ]*([^\)]+)\)
CGPoint(x:, y:)
CGSizeMake\((.*),[ ]*([^\)]+)\)
CGSize(width:, height:)
请注意,他们不知道嵌套括号,但可能足以满足 90% 的情况。
从 Swift 2 转换为 Swift 3 之后(即使在将 edit-> convert -> 转换为当前 swift 语法之后)我遇到了很多错误。特别是:
在我下载此测试版 Xcode 8.0 并转换为 Swift 3
之前,我的项目在 Swift 2 中运行良好,总共显示 90 个错误这是我犯的转换错误吗?
其中大部分都可以轻松修复,只需点击红色按钮,Xcode 就会为您修复!其他包括:
CGRect
Swift 2:
let frame = CGRectMake(0, 0, 20, 20)
Swift 3:
let frame = CGRect(x: 0, y: 0, width: 20, height: 20)
CGPoint
Swift 2:
let point = CGPointMake(0, 0)
Swift 3:
let point = CGPoint(x: 0, y: 0)
CGSize
Swift 2:
let size = CGSizeMake(20, 20)
Swift 3:
let size = CGSize(width: 20, height: 20)
CGRectGetMidX
Swift 2:
CGRectGetMidX(view)
Swift 3:
view.midX
CGRectGetMidY
Swift 2:
CGRectGetMidY(view)
Swift 3:
view.midY
UIColor
Swift 2:
let color = UIColor.redColor()
Swift 3:
let color = UIColor.red
"NS"
Swift 2:
NSTimer
NSData
NSError
Swift 3:
Timer
Data
Error
用户默认值
Swift 2:
NSUserDefaults.standardUserDefaults().//something
Swift 3:
UserDefaults.standard.//something
并始终记得使用有用的 "Fix all in Scope" 功能,该功能可在编辑器 -> 范围内全部修复
中找到我正在转换一个项目,但 Xcode 没有帮助我进行任何修复,所以我求助于几个正则表达式搜索和替换:-
CGPointMake\((.*),[ ]*([^\)]+)\)
CGPoint(x:, y:)
CGSizeMake\((.*),[ ]*([^\)]+)\)
CGSize(width:, height:)
请注意,他们不知道嵌套括号,但可能足以满足 90% 的情况。