苹果推出了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.jianshu.com/p/f042432e2d7d