在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
swift 团队一直在优化,让大家准备在秋天的时候,迁移到swift2做准备。 一、错误处理 异常处理,不是NSError对象和双指针。 可以使用 throws 来指定方法来抛出一个错误。 调用do try catch 多个关键字来捕获和处理错误。 NSError对象的引用,inout 方法会赋值给错误变量,传入一个nil到这里完全忽略这个错误,或者传入 NSError但从不检查它。 enum DrinkError:ErrorType { case NoBeerRemainingError } func drinkWithError()throws { if beer.isAvailable() { // party! }else{ throw DrinikError.NoBeerRemainingError } } func tryToDrink() { do{ try drinkWithError() } catch{ print("could not drink beer!:[") return } } 1、创建一个继承ErrorType的enum 2、使用throws关键词,标志任何函数可以抛出一个错误。 3、抛出一个错误,将会在section4中被捕获。 4、在do块中包含任何可以抛出一个错误的代码,而不是其他语言类似的try快中,然后你添加一个try关键字到函数被调用的前面,这个函数能够抛出一个错误。 绑定 在swift 1.2 失去了金字塔的厄运和能够在一行代码测试多个绑定的optionals; if let pants = pants,frog = frog{ // good stuff here! } 检查一些没有值的optionals 早点退出,这是swift 2提供的guard语句。 guard let pants = pants,frog = frog else{ // sorry,no frog pants here return } 使用guard意味着你可以执行optional binding ,如果条件失败就提供一个代码块在else运行,你可以继续执行,optiional frog 和 pants在作用域内被unwrap 使用guard指定某种你希望得到状态而不是检查错误情况之后,使代码更加简洁。 协议扩展 面向协议的编程语言 在swift1,协议就像接口一样可以指定一些属性和方法,类,结构体,枚举会遵循它。 在swift2,你可以扩展协议给属性和方法添加默认实现,你之前已经可以在类和结构体添加新的方法到string 或 array 你可以添加这些到协议,让你更加广泛应用。 extension CustomStringConvertible{ var shoutDescription:String{ return "\(self.description.uppercaseString)!!!" } } let greetings = ["Hello","Hi","Well"] // prints Hello,Hi,Yo yo yo print("\(greetings.description)") // prints HELLO,HI,YO YO YO print("\(greetings.shoutyDescription)") 协议被命名为CustomStringConvertible 大多数的Foundation对象都遵循Printable协议,有了协议扩展,可以用自定义功能来扩展系统。 相比向很多类,结构体和枚举添加少量的自定义代码,你可以编写一个通用实现,应用到不同的数据类型。 用过map filter 的,可以认为以方法的方式比全局函数来使用它们更好。 已经有一些新的方法添加到集合类型。 map,filter,indexOf et numbers = [1,5,6,10,16,42,45] // swift 1 find(filter(map(numbers,{$0*2}),{$0%3 == 0}),90) // swift 2 numbers.map{$0*2}.filter{$0%3 == 0}.indexOf(90) //return 2
http://ios.jobbole.com/82099/?from=groupmessage&isappinstalled=1
这只是所有发布特性中的一些简单示例;想了解更多,请查看WWDC session videos和已更新的Swift Programming Language book 如果还有一些人记得在Swift第一个beta版和发布的1.0之间有很多改变,那么将来肯定会有更多地特性出现。我们团队将会持续关注所有的更新,深入挖掘令人兴奋的改变,所以请密切留意教程,书籍和视频。 |
请发表评论