IOS9 Swift
Swift 2.0发布:即将开源,支持Linux
| [日期:2015-06-09] | 来源:infoq 作者:Linux | [字体:大 中 小] |
在6月9日凌晨举行的WWDC 2015全球开发者大会上,苹果发布了Swift 2.0,并宣布将于今年年底开源Swift语言。Swift 2.0引入了很多的新特性以确保开发者可以更快、更简单的构建应用,这些新特性包括更好的性能、新的异常处理API、可用性检查、支持Linux等。苹果将会在新发布的iOS 9中全面支持Swift,iOS 9 beta也会在今天对所有注册的苹果开发者开放。
Swift 2.0包含了许多的新特性以及改进,在本周的WWDC大会上苹果将会深入介绍这些新特性。同时,在苹果的开发者博客上,官方也对其中的某几个新功能做了介绍:
异常处理模型:新的异常处理模型使用了开发者最为熟悉的try、catch、throw关键字,并且还将完美支持苹果的SDK以及NSError。
可用性:通过使用新的SDK,开发者可以操作平台的新功能,但某些老的操作系统可能并不支持这些新特性,所以开发者就需要额外的检查。在处理类似的兼容问题上,Swift非常的得心应手。如果目标操作系统不支持某个API,那在编译时Swift将会报错。同样,开发者也可以使用#available来确保代码块可以运行于正确的操作系统版本上。
协议可扩展:协议(Protocol)用于统一方法和属性的名称,而不实现任何功能。Swift 2.0增加了协议扩展,在标准包中可以使用它。当使用全局函数时,Swift 2.0已经为方法添加了统一的类型,这样开发者就可以使用函数链,以提高代码的可读性。
除了这些新特性之外,另外一个重磅消息是苹果将在今年晚些时候开源Swfit。苹果的软件研发副总裁Craig Federighi在WWDC大会上表示Swift将会是未来的主流开发语言,它应该得到更为广泛的应用。但在大会上苹果并没有过多的解释关于Swift开源的更多信息,苹果曾在2005年开源过WebKit,如果不出所料,Swift项目的开源管理和运营模式应该和WebKit类似。

目前可以确认的信息包括:
- Swift的源代码将会基于某个OSI组织批准的开源协议进行开源。
- 苹果将会允许并鼓励社区开发者贡献代码。
- 未来Swift将会重点支持 OS X、iOS和Linux三个平台。
- 源代码将会包括Swift编译器以及标准库。
Swift开源的消息在Hacker News上引起了激烈讨论。总体来看,开源可以更好的促进Swift的发展,一方面开发者可以直接向Swift贡献代码,另外开源可以更好的帮助苹果构建其生态系统。
Apple Swift学习教程 http://www.linuxidc.com/Linux/2014-09/106420.htm
使用 Swift 构建一个 iOS 的邮件应用 http://www.linuxidc.com/Linux/2014-08/105542.htm
Swift 的详细介绍:请点这里
IOS9 Swift的更多相关文章
- (转)Awesome Courses
Awesome Courses Introduction There is a lot of hidden treasure lying within university pages scatte ...
- iOS9中,swift判断相机,相册权限,选取图片为头像
在iOS7以后要打开手机摄像头或者相册的话都需要权限,在iOS9中更是更新了相册相关api的调用 首先新建一个swift工程,在SB中放上一个按钮,并在viewController中拖出点击事件 ok ...
- iOS开发系列--Swift进阶
概述 上一篇文章<iOS开发系列--Swift语言>中对Swift的语法特点以及它和C.ObjC等其他语言的用法区别进行了介绍.当然,这只是Swift的入门基础,但是仅仅了解这些对于使用S ...
- iOS9和Xcode7
2015.06.08苹果放出了iOS9以及Xcode7的 Beta测试版本.有一句话非常引入注意: https://developer.apple.com/xcode/ Now everyone ca ...
- swift中第三方网络请求库Alamofire的安装与使用
swift中第三方网络请求库Alamofire的安装与使用 Alamofire是swift中一个比较流行的网络请求库:https://github.com/Alamofire/Alamofire.下面 ...
- Swift&NodeJS 使用Alamofire进行Post(zhuan)
这篇博客主要实现Swift客户端和NodeJS后台的Post.Get请求实现. 我是一个略有点讨厌重复使用工具的人,比如这些基本功能完全可以用OC和PHP等替代,但是没办法,现在知识更新的太快啦,Sw ...
- Swift&Node 使用Alamofire进行Post
这篇博客主要实现Swift客户端和NodeJS后台的Post.Get请求实现. 我是一个略有点讨厌重复使用工具的人,比如这些基本功能完全可以用OC和PHP等替代,但是没办法,现在知识更新的太快啦,Sw ...
- Swift实战之2048小游戏
上周在图书馆借了一本Swift语言实战入门,入个门玩一玩^_^正好这本书的后面有一个2048小游戏的实例,笔者跟着实战了一把. 差不多一周的时间,到今天,游戏的基本功能已基本实现,细节我已不打算继续完 ...
- iOS9 collectionView新特性
近日因为系统升级导致xcode6.系列版本出现bug,于是开始使用xcode7.在使用之余突然想到collectionView在iOS9中发布了一个可以移动cell的新特性,就尝试着将其实现,无奈ap ...
随机推荐
- Spring获取bean的工具类
package com.tech.jin.util; import org.springframework.context.ApplicationContext; import org.springf ...
- javascript各种宽高
参考: http://www.w3cschool.cc/jsref/dom-obj-all.html http://www.cnblogs.com/wen12128/archive/2012/05/2 ...
- win7和u盘redhat7.1双系统安装总结
最近win7系统越用越卡,又没钱买mac只能想办法装以下linux系统,听说redhat服务器用的比较多,就想尝试一下装一个redhat.当然,和所有人一样,搜索了很多资料.我选择装双系统,因为要抛弃 ...
- selenium定位元素(本内容从https://my.oschina.net/flashsword/blog/147334处转载)
注明:本内容从https://my.oschina.net/flashsword/blog/147334处转载. 在使用selenium webdriver进行元素定位时,通常使用findElemen ...
- strom的使用02
1.grouping分组策略 stream grouping就是用来定义一个stream应该如果分配给Bolts上面的多个Tasks. storm里面有6种类型的stream grouping: 1. ...
- MyEclipse中的SVN操作手册
原文出处:http://blog.sina.com.cn/s/blog_8a3d83320100zhmp.html 1.导入项目 点击工具栏上的[File-Import],进入下图 (如果你的对话框中 ...
- 如何监控checkbox改变
现在想实现一个效果,即使弹幕开关,弹幕开关实际是checkbox $(document).on('change',"#barrage",function(){ if (!$(thi ...
- Ubuntu 和 Redhat / Fedora 服务管理命令对比表(附Fedora16新的服务管理工具systemctl )
以 apache/httpd 服务作为例子 任务 Red Hat / Fedora Ubuntu Ubuntu (with sysv-rc-conf or sysvconfig) 立即启动/停止某服务 ...
- 关于UIView的AutoresizingMask属性的研究
在 UIView 中有一个autoresizingMask的属性,它对应的是一个枚举的值(如下),属性的意思就是自动调整子控件与父控件中间的位置,宽高. 1 2 3 4 5 6 7 8 9 enum ...
- eclipse: The superclass "javax.servlet.http.HttpServlet" was not found 解决方案
解决步骤: 1. 安装Tomcat8.5 Server 2. eclipse 新建Tomcat 8.5 Server 3. 配置build path 添加 Server Runtime 1.右键项目 ...