设为首页收藏本站

LUPA开源社区

 找回密码
 注册
文章 帖子 博客
LUPA开源社区 首页 IT综合资讯 查看内容

苹果继续改改改!Swift语言何时能稳定?

2015-3-6 21:37| 发布者: joejoe0332| 查看: 640| 评论: 0|原作者: 王芳杰|来自: CSDN

摘要: 春节期间,苹果发布了版本号为6D532l的Xcode 6.3 Beta 2,相较上一版本,此次共有16处改动,而几经修改的Swift语言即使已更新至1.2版本,其语法依然不稳定。除此之外,Xcode还有一个非常大的变化就是全新的Playgroun ...

  春节期间,苹果发布了版本号为6D532l的Xcode 6.3 Beta 2,相较上一版本,此次共有16处改动,而几经修改的Swift语言即使已更新至1.2版本,其语法依然不稳定。除此之外,Xcode还有一个非常大的变化就是全新的Playground。


App Store和Test Flight Crash Logs Oganizer

  • Xcode现在可以显示从AppStore和TestFlight收集来的崩溃日志,为了查看你自己App的崩溃日志,先需要你在Xcode的账户面板输入你的开发者账号,最后在Xcode Organizer窗口中查看与你开发者账号相关联的iOS App崩溃报告。
  • 崩溃报告只在你向iTunes Connect中上传了当前App的符号信息数据的情况下可见。Xcode提供一个列表来显示你所有App中级别最高的崩溃报告,并且崩溃报是符号化的且和Apple的服务器整合。Xcode同时提供了工作流来管理你的崩溃报告以及直接回溯到你的App源代码。

Xcode Playground增强

  • Playgrounds提供了一个简单的方法通过标记文本来创建和编辑富文档。使用新的"//:"和“/*:*/”风格的备注来显示丰富的备注信息。可以通过使用编辑菜单中的“Show Documentation as Rich Text”和“Show Documentation as Raw Text”选项来切换Playground的显示模式。


  • Playgrounds的结果现在以内联的方式显示而不是显示在Timeline视图中,如果显示结果有多行时,你可以在单行与多行列表中切换。对于结果集是数字的,Xcode提供了一个图形化的显示选项,结果显示可以被调整显示多还是少。
  • Playground滚动和性能都有所提高。

Swift性能

  • 一个被称为“全模块优化”的编译模式增加到了Swift中。这个选项可以把一个Target中的所有文件优化到一起同时提供更好性能。这个新的标志可以通过Xcode中的“Whole Module Optimization”编译选项开启,或者在使用swiftc命令时传入“-whole-module-optimization”参数开启。

Swift语言的增强

  • 这个“if-let”语法现在扩展支持以一个bool表达式开头并且跟随一个可选绑定“let”表达式。如:
  1. if someValue > 42 && someOtherThing < 19,  
  2.  let a = getOptionalThing() where a > someValue {  
  3.  }  
  • 这个@autoclosure属性拥有了第二种形式。@autoclosure(escaping) 和@autoclosure有着同样的调用形式,但是它允许产生结果的闭包在实现中缓存,如:
  1. func lazyAssertion(@autoclosure(escaping) condition: () -> Bool,  
  2.  message: String = "") {  
  3. lazyAssertions.append(condition) // escapes  
  4. }  
  5. lazyAssertion(1 == 2, message: "fail eventually")   

Swift语言的改变

  • 空合运算符(??)的优先级现在比逻辑运算符和比较运算符高,但是比转换运算符as和区间运算符低。这个提供了非常有用的特性,如:
  1. if allowEmpty || items?.count ?? 0 > 0 {   
  • “&/”和“&%”运算被移除,这种行为分别使用“/”和“%”代替,不过这种形式已经冗余了。
  • 从一个ASCII码构造一个UInt8需要一个ascii关键字。使用一个非ASCII的Unicode字符集将产生一个中断。
  • C类型的size_t现在以Int的形式导入到了Swift中,这减少了大量Int和UInt间的显式类型转换,同时和返回Int型的sizeof更好的对齐。
  • 没有继承自NSObject的类但是确实继承了一个@objc标志的协议时,则需要给这些方法,属性和构造器用@objc标记从而来满足协议需求。如:
  1. @objc protocol SomethingDelegate {  
  2.  func didSomething()  
  3.  }  
  4.  class MySomethingDelegate : SomethingDelegate {  
  5.  @objc func didSomething() { … }  
  6.  }  

作者简介:

王芳杰 老码团队(@未来眼之老码团队)成员,目前就职于叠拓信息技术有限公司,担任叠拓NGN中国人力资源培养经理、叠拓NGN中国售前经理,《老码说编程之玩转Swift江湖》一书作者。


酷毙

雷人

鲜花

鸡蛋

漂亮
  • 快毕业了,没工作经验,
    找份工作好难啊?
    赶紧去人才芯片公司磨练吧!!

最新评论

关于LUPA|人才芯片工程|人才招聘|LUPA认证|LUPA教育|LUPA开源社区 ( 浙B2-20090187 浙公网安备 33010602006705号   

返回顶部