本次升级由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