说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

苹果官方博客:从SDK详说Swift代码的改变

HTML文档下载 WORD文档下载 PDF文档下载
Xcode 7中,几乎所有常见框架都指定了其API的nullability注解,包括其集合类型的元素,这使得Swift代码的样子发生了变化,而通过To Latest Swift Syntax会将实现从Swift 1.2到2.0的代码转换。

CSDN移动将持续为您优选移动开发的精华内容,共同探讨移动开发的技术热点话题,涵盖移动应用、开发工具、移动游戏及引擎、智能硬件、物联网等方方面面。如果您想投稿、参与内容翻译工作,或寻求近匠报道,请发送邮件至tangxy#csdn.net(请把#改成@)。 


在Xcode 6.3中,我们为Objective-C添加了新语言特性nullability注解。这个特性给Objective-C提供了表达API使用null和non-null统一的方式,相当于Swift语言中的Optional类型。Xcode 7继续为Objective-C与Swift之间更加自然的通信引入轻量级的泛型模型。泛型使得这两种语言能够可靠地融合并分享带有特定类型元素的集合。

这些特性对任何使用Swift和Objective-C这两种语言编程的人来说都比较有用。但应用程序开发人员每天使用的Objective-C代码占更大部分:这就是组成Apple SDK的那些框架。为了提升Swift和Objective-C的使用体验,全公司的范围内,我们在SDK的头文件中都提供了这样的信息。Xcode 7中,你会发现几乎所有常见框架都指定了其API的nullability注解,包括其集合类型的元素。这使得Swift代码的样子发生了变化。

变化前:

class UIView : UIResponder {  	init!(frame: CGRect)	var superview: UIView! { get }  	var subviews: [AnyObject]! { get }  	var window: UIWindow! { get }	// ...	func isDescendantOfView(view: UIView!) -> Bool	func viewWithTag(tag: Int) -> UIView!	// ...	var constraints: [AnyObject]! { get }	// ...}

变化后:

class UIView : UIResponder {  	init(frame: CGRect)	var superview: UIView? { get }  	var subviews: [UIView] { get }  	var window: UIWindow? { get }	// ...	func isDescendantOfView(view: UIView) -> Bool  	func viewWithTag(tag: Int) -> UIView?	// ...	var constraints: [NSLayoutConstraint] { get }	// ...}

最后一个疑问是Xcode 7中将代码转换成Swift 2的工具,在Xcode的Edit菜单下,Convert > To Latest Swift Syntax。通过必要的编辑,该工具会将一个使用Swift 1.2编写的项目转换成合法的Swift 2.0代码。这些改变源于改进后的头文件信息。例如,正在重写的一个方法,其参数和结果类型更加精确,方法转换的过程中将会被更新与之匹配。

在今年的WWDC的Swift and Objective-C Interoperability视频14:30处,对Objective-C所作的改进做了详尽的描述。注意,该视频使用的是Xcode 6.3中的__nullable语法,并非更新的Xcode 7中用的_Nullable。了解更多nullability注解的信息,可以看看Nullability and Objective-C。了解Swift 2.0和Objective-C中轻量级泛型更多信息,可以看看Xcode 7 Release Notes。

(翻译/白云鹏 友情审校/汪洋)

原文链接:Apple Developer's Blog

译者简介白云鹏,移动应用开发者,个人博客:http://baiyunpeng.com/


预告: 2015中国移动开发者大会(MDCC 2015)将于10月15-16日在北京新云南皇冠假日酒店召开。大会特设五大技术专场:平台与技术iOS、平台与技术Android、产品与设计、游戏开发、企业移动化。此外,大会更是首次举办国内极具权威影响力的IoT技术峰会,特设硬件开发技术与虚拟现实两大专场。大会将聚集国内最具实力的产品技术团队,与开发者一道进行最前沿的探讨与交流。

第一时间掌握最新移动开发相关信息和技术,请关注mobilehub公众微信号(ID: mobilehub)。  

用VB开发标准CGI程序 用VB实现客户——服务器(TCP/IP)编程实例 用VB实现聊天讨论室和点对点会话 用VB写一个定时PING某IP的程序 用VB制作浏览器 用Visual Basic 5.0设计E-mail程序(MAPI) 用Visual Basic6.0编写客户服务器程序 用Visual Basic创建FTP组件 用Visual Basic开发数据库浏览器 用Visual Basic轻松地设计Browser及Ftp程序 VB用Winsock控件发信Email VB用Winsock实现点对点通信 邮件检查程序(二) -VB资料 邮件检查程序(一) -VB资料 在VB程序中怎样挂断拨号网络 在VB中利用UDP协议编写聊天程序 在VB中模拟实现邮件传输 在VB中实现文件上传 在VB中使用UDP协议 在VB中用Outlook发电子邮件 在程序中打开 Internet 拨号连接窗口 -VB资料 在一个单位内部或通过广域协议(如X.25)互联的行业内部都有几十或上万台计算机互联,用Intrane 在应用中集成浏览器-VB资料 在桌面上建立一个 Internet 快捷键 -VB资料 VB怎样接收电子邮件(POP3协议简介) VB怎样用VB得知系统当前是否处于internet链结状态 VB制作自己的网络搜索软件 自动更新工作站的应用程序-VB资料 自己的IE——用VB制作浏览器 VB6制作Win98风格的工具栏 VB实现窗口的弹出式菜单 通过电脑可以收发传真吗? 请问,如何在一个标签中加入其他的控件,并且控制标签显示的位置? 通过 2 个输入框 动态调整大小 ,但是不起作用 ?不是 后端 设置属性 会覆盖前端的吗 ? 写的第一首旧体诗,呵呵~ 学asp.net后再学asp快吗? ifaq, please come in. for you 求教问题!着急!asp.net如何连接SQLserver 十万火急:使用Directshow从摄像头读入数据,全屏播放时速度很慢 如何接受ActiveX控件的事件参数 关于MM和程序 求书 请问一个关于struts的问题,多谢了 求好书 请高手们指点一下!!!! 如何将tomcat8080端口改成8090? 急问:如何判断串口是否有设备接入? 请教:如何用win2k server和win2k pro进行局域网内的域建设 关于ltoa这个函数的一个小问题! 能将PB里数据窗口的报表以传真的方式发送出去吗?高分酬谢1 jb9里不能编辑MIDlet的代码吗? 在ASP中能够实现ASP.NET中的web.config其中的一个功能吗? 哈夫曼最优树 你能读懂吗? 关于借钱的问题,好烦恼呀,各位给点建议 求助,(datagrid+adodc) datagrid第一行第一列数据自动清除! 最近碰到一怪事~applet在某些机子上不能正常显示,help~~~~ 大家看看要编这样一个网站要多少钱? 思归大侠等高手,关于在javascript中调用并传值给服务器端方法的问题 有没有解决失眠的好办法? 有在广州天河软件园工作的朋友吗?请帮忙! 求助 再问一个sql语句 win2000下怎么控制用户上INTERNET? 一个关于WINFAX的问题!请教各位! dynamic_cast<TFileListBox*>(Source)!=0;这句什么意思? IE 问题 如何判断文件已经打开或被选中,如何将选中的文件解除选定 十万火急:direct3D中加入视频动画后,窗口显示不正确 如何在TextBox 中插入换行符 问一个小小的问题可以吗? IntraWEB中怎样连接带密码的Paradox数据据 SQL2000数据库建立了连接了,怎么还出现这种情况 紧急求救!! 请教:做了个按关键字搜索的小引擎,我想把搜索到的结果中包含“关键字”的部分以不同的颜色显示,就象google那样,请教策略 关于动态生成一个int[]数组 dbgrid中如果不给TColumn付FieldName,怎样给该列的单元格付值?谢谢! 为提高自己的实践水平,免费用JAVA给大家做程序 送大分啊。快来啊。 在线等待救助,请教大师oracle817安装的 问题 为提高自己的实践水平,免费用JAVA给大家做程序 请问如何禁止用户使用 Print Screen SysRq 键? 母爱的对峙 阅读答案文章以我很难认同母亲是个纯粹的女人开头 其后又极力写木器保护孩子并给予赞颂 下图是细胞与内环境进行物质交换的问 应选哪个?为什么?/> 当一个从小没有过母爱的女人成为母亲时会是什么样的?其实这个女人就是我妈.她是家里的长女,但是外婆从来就不喜欢她,而是比较宠爱二女儿.按照我妈的话来讲,她小时候就是家里的二等公 给我关于母爱或母亲的开头 1.A三国 B唐 C晋 D汉 E宋按从古到今的顺序排列 大理石加稀盐酸的离子反应,铁和硝酸的离子反应 我的yy号老是冻结怎么回事?就连刚注册的也是? 可夫用英文怎么拼?“可夫”用英文怎么拼? 铨 这个字右面全没有中间那个横读什么 80C51单片机控制,用P1口控制8个灯单灯循环亮0.5s灭0.5s 编程 把一个数在数轴上表示的步骤是什么 美国承诺停止监听盟国泰前总理阿披实面临谋杀指控强风暴袭击欧洲多国英窃听丑闻案开庭被告否认指控纽约手机可接收紧急警报糖库失火“糖浆瀑布”堵门巴西劫匪入室抢值钱漫画俄欲借力中国加速远东开发媒体评山大校长就职政法委:法学背景官金华男子非法拘禁妻子获刑 虐待折磨3妻子排斥发生性关系 男子下药迷奸5年小心因时间差变低配为高配多赛两场落后5分重庆晚报主办曝福原爱被中国优质男追2015年铁子帮重庆赛区两连胜向冠军出发十二届全国人大三次会议闭幕多在安全配置上做文章重庆晚报主办重庆国际马拉松赛周末开跑四大变化及报考流程重生之文学宗师神级仙丁吞天逍遥决全球竞技场我的大脑里有外星人妖孽护卫神道圣主雄霸九荒天命武修最强全能保镖雷霸天穹桂林山水间旅游乐亭海滨旅游区旅游香山旅游红树林旅游东阿广场旅游新加坡河旅游新加坡城旅游飞行者摩天轮旅游圣淘沙旅游新加坡夜间野生动物园旅游新加坡动物园旅游
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘