swift3.0的一些改動

蘋果推出了Swift3.0,改了不少地方,如今就我遇到的一一道來(有解法)  開始在IOS開發板塊中發了,以爲還應該在Swift板塊中發下

第一,把c的for循環完全廢棄了,可是那些人竟然沒有給降序的寫法(或許我不知道吧),解決辦法,用降序的話初始值設爲負數好比 for i : Int In -10 .. 0, 這樣就ok了 有哥們告訴了能夠 用(0...10).reverse()

第二,不少NS開頭的東西都沒了,好比NSNotification 等等 改爲了去掉NS,固然相應地 方法也會改,它自動的會不成功,建議本身看API從新寫

第三,Notification 的初始化,那個name不能用string類型的,必需用一個新的類型,叫Name

第四,就第二條來講明一下NSURLSession,這個它改成了URLSession,而後你的request 也要改爲URLRequest(要用var)

第五,_dispatch_once 廢棄了, 不知道要改爲什麼樣 提示是: use lazily initialized globals instead,誰知道告訴我下,感受很坑,我還好只有一個地方用到了

第六,CGFloat運算的時候: 好比定義一個 var a: CGFloat = 10, a = a / 2 這個沒問題,可是 a = a / 7 就有問題了, 必需先把7 轉爲CGFloat, 坑爹

第七,CGRectMake這些沒有了,統一成了CGRect,具體的看Api, 我要說的是有地方要注意, init(x: CGFloat, y: CGFloat, width: CGFloat, height: CGFloat),這裏init能夠不要, 可是裏面的值若是是運算的話不能寫的太長,要否則又會給你報個錯, 比較好的方式是先定義一個值運算完

第八,view.isKindOfClass(UIImageView) 這種函數變了,會變成view.isKind(of: UIImageView)加上報錯,而後給你一個自動解決的方法,結果是view.isKindof: (UIImageView)加上報錯, whats fuck,還在解決中

第九,URLSessionDownloadDelegate 寫法也出現的變化,具體的我還在研究

第十,public typealias SCNetworkReachabilityCallBack = @convention(c) (SCNetworkReachability, SCNetworkReachabilityFlags, UnsafeMutablePointer<Swift.Void>?) -> Swift.Void 這個函數變了(這裏是變了以後的),其實以前的就是UnsafeMutablePointer<Void>,少了一個?,少了一個Swift. 哈哈哈哈哈哈

暫時寫到這裏,接下來又要去研究了,等碰到更多的或者上述的一些有解決方案的我會發函數

相關文章
相關標籤/搜索