swift代码升级

本次升级由swift2.3->swift4.0swift

swift2.3升级swift3.0
pravite -> fileprivate
Publice -> open
枚举更换小写
方法名更精简,后面括号移除api

gcd方法改变
gcdtimer建立方法返回值类型变了 DispatchSource -> DispatchSourceTimer
setTimer(start: DispatchTime.now() + Double(0) / Double(NSEC_PER_SEC), interval: interval * NSEC_PER_SEC, leeway: 0)
-> scheduleRepeating(deadline: .now(), interval: .seconds(interval))网络

NS 去掉,AnyObject -> Any
字典用下标取值
let interfaceData = data as NSDictionary
currentSSID = interfaceData["SSID"] as! Stringide

-> 布局

let interfaceData = data as Dictionary
currentMac = interfaceData.index(forKey: "BSSID" as NSObject) as! Stringpost

block须要@escaping修饰字体

自动布局
snapkit
snp_ -> snp.ui

网络请求
Alamofire
方法名更换,请求post\get
全部通知更换,枚举更换小写Notification.Task.DidCancel -> Notification.Name.Task.DidCancelspa

方法的第一个参数加_ ,调用时可省略参数名,不加则须要参数名code


一些属性的名字改变isNetworkActivityIndicatorVisible 网络请求的菊花
selecte -> isSelecte
hidden -> isHidden
等等

- - - - - - - - - - - - - - - - - - — - — - - - - - - - - —

swift3.0 - > swift 4.0

设备相机枚举,类更细分
AVMetadataObjectTypeCode128Code -> AVMetadataObject.ObjectType.code128

AVCaptureSessionPreset1920x1080 -> AVCaptureSession.Preset.hd1920x1080

AVCaptureDevice.defaultDevice(withMediaType: AVMediaTypeVideo) -> AVCaptureDevice.default(for: AVMediaType.video)

不识别前边下方会有红色下划线,提示更详细替换

按command左键点击代码会有弹窗选择进入类详情或帮助,右键直接进详情

#selector方法须要@objc修饰

The use of Swift 3 @objc inference in Swift 4 mode is deprecated警告
build setting swift3 @objc inference 设置为off
提示信息能够复制

MPI -> Double.pi π
字体属性

全部通知名改成

NSNotification.Name.XXX.rawValue

相关文章
相关标签/搜索