SWIFT3.0 坑爹變化---這次比較全

蘋果推出了Swift3.0,改了很多地方,現在就我遇到的一一道來(有解法)? 開始在IOS開發板塊中發了,覺得還應該在Swift板塊中發下

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

第二,很多NS開頭的東西都沒了,比如NSNotification NSDictionary 等等 改成了去掉NS,當然相應地 方法也會改,它自動的會不成功, 建議自己看API重新寫,特別是Dictionary Array基本叫一個坑,API基本面目全非!寫得我淚流滿面。

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

第四,就第二條來說明一下NSURLSession,這個它改為了URLSession,然后你的request 也要改成URLRequest(要用var)

第五,_dispatch_once 廢棄了,? 現在單例模式也改很非常簡單static let shareCLASS =CLASS(),順便說說weakself的申明也變得簡單很多weak var tempSelf = self

第六,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 這個函數變了(這里是變了之后的),其實之前的就是UnsafeMutablePointer,少了一個?,少了一個Swift.?

第十一,控制器實例!你要找API估計找不到!!沒錯!!是找不到!!現在寫法已經改成

let vc = MainTabBarController(),還有等號兩邊一定要有空格,不然會報錯。Chirs,你是怎么了??!突然生病了??患強迫癥了嗎?

第十二,GCD的api改得讓你懷疑人生。這里有篇文章解釋得挺清楚http://www.lxweimin.com/p/f042432e2d7d

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容