蘋果推出了Swift3.0,改了很多地方,現在就我遇到的一一道來(有解法)
第一,把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)加上報錯, wtf
if view is UIImageView {
}
第九,URLSessionDownloadDelegate 寫法也出現的變化,
具體的我還在研究
第十,public typealias SCNetworkReachabilityCallBack = @convention(c) (SCNetworkReachability,
SCNetworkReachabilityFlags,
UnsafeMutablePointer<Swift.Void>?) -> Swift.Void
這個函數變了(這里是變了之后的),其實之前的就是UnsafeMutablePointer<Void>,少了一個?,少了一個Swift.
哈哈哈哈哈哈
暫時寫到這里,接下來又要去研究了