Xcode 7 beta发布,Swift 2.0带来哪些新变化?

更新时间:2015-06-10 12:11:26 点击次数:2377次

WWDC 2015首日,苹果发布了版本号为7A120f的Xcode 7 beta,包含了Xcode IDE、Swift 2编译器、Instruments、模拟器和新的OS X、iOS、watchOS SDK。 


Xcode 7 beta Release Notes可以看出,Swift 2.0包含了许多非常niubility的特性,现在,在Swift中支持错误处理,如抛出(throw)、捕获(catch)、管理(manage)等,并且可以和NSError无缝交互。而当新的API需要向后兼容旧的系统版本时,如果当前API和将要部署的目标系统版本不一致,将会抛出一个编译时错误。而近来在TIOBE编程语言排行榜呈现“自由落体”趋势的Objective-C也有着两处修改。具体更新如下: 

Swift 2.0和Objective-C的更新




[cpp] view plaincopy

  1. if #available(iOS 8.0, OSX 10.10, *) {  

  2.  // 当版本匹配时使用Handoff APIs.  

  3.  let activity =  

  4.  NSUserActivity(activityType:"com.example.ShoppingList.view")  

  5.  activity.becomeCurrent()  

  6. else {  

  7.  //当版本不匹配时返回.  

  8. }   





[cpp] view plaincopy

  1. @available(iOS 8.0, OSX 10.10, *)  

  2. func startUserActivity() -> NSUserActivity {  

  3.  ...  

  4. }   


指示startUserActivity()方法只在iOS8.0+,OSX10.10+以及以其他平台的全版本可用。




[cpp] view plaincopy

  1.  let f = fopen("x.txt""r")  

  2.  defer { fclose(f) }  

  3.  try foo(f) // f会关闭如果错误产生的话.  

  4.  let f2 = fopen("y.txt""r")  

  5.  defer { fclose(f2) }  

  6.  try bar(f, f2) // 如果错误产生f2关闭,接着f关闭。  

  7. // f2关闭, 如果没有任何错误产生f关闭。  





[cpp] view plaincopy

  1. guard let z = bar() else { return }  

这里的else语句被用于退出代码块(和return、throw、break、continue等类似),或者终止调用一个@noreturn属性修饰的函数。





[cpp] view plaincopy

  1. do {  

  2.  //new scope  

  3.  do {  

  4.  //another scope  

  5.  }  

  6. }  





[cpp] view plaincopy

  1. var array = [3, 14, 15, 9, 2, 6, 5]  

  2. qsort(&array, array.count, sizeofValue(array[0])) { a, b in  

  3.  return Int32(UnsafePointer<Int>(a).memory - UnsafePointer<Int>(b).memory)  

  4. }  

  5. print(array)  





[cpp] view plaincopy

  1. enum Either<T, U> {  

  2.  case Left(T), Right(U)  

  3. }  





[cpp] view plaincopy

  1. public extension Array { … }  




Playground



本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责,本站只提供参考并不构成任何投资及应用建议。本站是一个个人学习交流的平台,网站上部分文章为转载,并不用于任何商业目的,我们已经尽可能的对作者和来源进行了通告,但是能力有限或疏忽,造成漏登,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

回到顶部
嘿,我来帮您!