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

Xcode 6.3 Beta发布,Swift 1.2带来哪些新变化?

HTML文档下载 WORD文档下载 PDF文档下载
苹果发布Xcode 6.3 Beta,更新Swift语言至1.2版本,修改OC语法,进一步提升Swift与OC代码交互性,其代码迁移工具可以帮助开发者实现代码升级。本文作者王芳杰在第一时间对Release Notes进行了完整翻译。

北京时间2月10日,苹果在面向开发者推送iOS 8.3 Beta的同时,还发布了版本号为6D520o的Xcode 6.3 Beta,其中便包含了iOS 8.3 Beta和OS X v10.10 SDK,并进一步提升了Swift与Objective-C代码的交互性,而Swift业已更新至1.2版本。


Xcode 6.3 Beta Release Notes看出,Xcode 6.3 Beta包含了很多颇为值得开发者期待的改变,共计50多处改动,同时修改了Objective-C的语法,足见苹果对Swift语言的重视。而其代码迁移工具可以帮助开发者将其代码从Swift 1.1(Xcode 6.1)升级至Swift 1.2(Xcode 6.3),具体执行编辑菜单(Edit)->转换(Convert)-至(To)Swift1.2即可。 具体更新如下:

Swift语言的增强

  • Swift现在支持目标增量编译,例如当一个文件改变时不会重新编译Target中的每一个文件。这个基于固有依赖分析。所以你依然会看到有很多文件在必要情况下被重编。如果你发现需要重编但没有重编的情况,请报一个Bug出来。清理Target后再编,会按照往常的流程进行。
  • 增加了一个新的Set数据类型,它提供了元素唯一化,且有完整语义的通用数据类型集合。它和NSSet类型桥接,提供和Array和Dictionary相类似的功能。
  • if let语句现在被扩展为可以支持多条条件判断:

if let a = foo(), b = bar() where a < b,let c = baz() { }

它允许你测试多种选择,并且包含一个bool判断。当然这种情况不包含嵌套判断。

  • let常量现在生成时不需要立即初始化,新的规则是let常量必须在被首次使用前初始化即可(和var一样)。或者说它只能被初始化,也就是说在初始化后它不能再被改变或者重新赋值,可用的模式如下:

let x: SomeThing if condition { x = foo() } else { x = bar() } use(x)

这个正常的来说需要var变量用法,尽管这里没有任何修改的操作。

  • "Static"静态方法和属性现在允许在class中使用(作为“class final”的别名)。你现在可以在类中声明一个静态存储属性,它享有全局存储空间和首次使用再初始化的惰性构造功能。协议Protocal现在会声明一个static的类型要求而不是声明一个class的要求。
  • 对于表达式闭包的类型引用有了几点改进:

  1. 含有单返回语句的闭包现在类型检查时以单表达式闭包处理。
  2. 匿名的且含有非空返回类型的单表达式现在可以用在Void上下文中。
  3. 多表达式的闭包类型的情况可能无法被类型推断出来,这归功于缺乏返回类型的情况能被正确的推断出来。

  • Swift中的枚举类型现在可以通过@objc关键字导出到Objective-C中。@objc的枚举类型必须定义一个整型的原始类型,并且该枚举不能泛型化或者不能使用关联值。由于Objective-C中的枚举类型没有命名空间,所以导出到Objective-C中的枚举类型以枚举名字和case项目名字的组合的方式使用。 比如在Swift中的声明:

@objc enum Bear: Int { case Black, Grizzly, Polar }<br>

导出到Objective-C:

 typedef NS_ENUM(NSInteger, Bear) { BearBlack, BearGrizzly, BearPolar };

  • Objective-C语言的扩展语法现在可以判断出Objective-C API中指针或者block的是否为空,同时允许不带ImplicitlyUnwrappedOptional协议地导出Objective-C API函数。
  • Swift现在可以部分支持导入C的联合类型,包括unions、bitfileds、SIMD vector类型以及其他Swift的不支持的C特性。这些不被支持的元素不能在Swift中的直接访问,但是在Swift中,Objective-C或者C可以以参数或者返回类型的方式使用。这包括Foundation NSDecimal类型、GLKit GLKVector和GLKMatrix类型,以及其他一些类型。
  • 被导入的C结构体现在在Swift中有一个默认的构造器,它会将结构体中的所有的元素初始化为0,例如:

import Darwin var devNullStat = stat() stat("/dev/null", &devNullStat)

如果一个结构体的元素不能被正确的初始化为0(比如被标记为新的_nonnull标示符时),这个默认的构造器将会终止。

  • String的索引类型间新的转换API现在可以用了,如String、String.UnicodeScalarView、String.UTF16View以及String.UTF8View, 同时每个String View转换为String的函数也可使用。
  • 类型值在println函数或者字符串内插算法中现在可以打印完整的类型名称了:

toString(Int.self) // 打印 “Swift.Int" println([Float].self) // 打印 "Swift.Array<Swift.Float>” println((Int, String).self) // 打印 "(Swift.Int, Swift.String)"

  • 一个新的“@noescape”属性可以用在函数的闭包参数上,这意味着这个参数是唯一可被调用的(或者用在函数调用时以参数的方式出现),其意思是它的生命周期比函数调用的周期短,这有助于一些小小的性能优化,但最重要的是它屏蔽了闭包中对self.的需求。这使得函数的控制流比其他更加透明。在未来的beta版本中,标准库函数将普遍采用这种特性,比如autoreleasepool():

func autoreleasepool(@noescape code: () -> ()) {   pushAutoreleasePool()   code()   popAutoreleasePool() }

  • 相比Swift 1.1,Swift 1.2在很多方面的性能上有本质的提高,比如多维数组算法更快,未优化的代码更加快速。
  • 表达式类型的错误诊断有了很大的提高。
  • 很多通用表达式的检查效率有很大提高,这个有助于降低编译时间和减少“expression too complex”的错误。
【深入浅出Koa】常用工具分享 帮你降低编程难度 Relay: 全新的React数据获取框架 探索游戏开发面临的技术挑战——MDCC 2015游戏开发专场议程曝光 【SDCC讲师专访】易开发创始人潘俊勇:这些年我遇到的那些坑 【CTO讲堂】OpenStack行业实践和发展趋势探讨 万物互联,移动为先:MDCC 2015移动开发者大会盛大开幕! 【MDCC 2015】微软开发体验与平台事业合作部大中华区DX部门总经理Srikanth Raju:物联之上云+端 英雄会晚宴,Top开发者共聚“华山之巅” 【MDCC 2015】产品与设计专场(上):百度研究院、印象笔记等专家齐聚,以实例探讨如何打造好产品 【MDCC 2015】产品与设计专场(下):网易云音乐、在行、三节课、去哪儿网、野兽骑行大咖的产品之路 友盟:把数据用活 让开发者享受大数据红利 友盟:用活大数据 让精细化运营为移动开发者服务 携手世纪互联 IBM Bluemix云平台落地中国 【MDCC 2015】IoT峰会—硬件开发与技术专场(下):专家齐聚,共同打造联网新时代 【MDCC 2015】虚拟现实专场(下):虚拟现实的“困”与“竞” 【CTO讲堂】面对世界竞争对手,如何拿到Google PDF开源项目PDFium? 提升网站性能开发的10个技巧 SDCC 2015:顶尖技术精英云集 大会日程及首批讲师议题公布 《近匠》专访猿团创始人CEO谢恩明:梦想、未来、改变 《近匠》专访小熊尼奥:从软硬结合到IP合作,AR产品的机遇 W3C启动Web支付标准工作,推进在线结算流程 W3C中国区会员沙龙在京召开 W3C CEO Jeff分享W3C未来发展重点 【SDCC讲师专访】车轮互联总架构师韩天峰:PHP是最好的编程语言 SDCC 2015讲师专访精彩集锦(一):你想知道的,都在这! (入门篇)带你走进Erlang 【大神来了】Elixir语言设计者José Valim:释放Erlang VM的能量 【SDCC 2015讲师专访】刘小溪:Vert.x3的异步框架实战 【CTO讲堂】支付接入开发的陷阱有多深? 程序员界“香饽饽”、大神级别人物集体亮相——SDCC 2015编程语言专场议题曝光 【CTO沙龙】CDN在共享经济下的创新应用 深入浅出Fetch API 带你入解应用场景及适用问题 谁能帮我做一个小型帐务管理(用C)??? 用delphi编程,用什么触摸屏比较好啊? 怎样在程序运行时增加子菜单(要增加的数目是未知的) 关于Sprite动画 出售代码 ACCESS的FORMS DLL调用函数问题 VB在ACCESS中应用的一个小问题! ACCESS中的FORMS问题? 再普通不过的一个问题 delphi6中还有BDE和ADO吗?它们被淘汰了吗?现在还有必要用它们来学数据库的开发吗? 50分答谢!!!---这个css定义为什么会出现这样的效果??? 各位:怎么判断表里某个字段是否存在? 纯技术问题:精通“书签“与“层“的大虾请进!!!! 一个奇怪的现象,请教高手这是怎么回事? 哪里有破解清华五行卫士密码的软件? vc++7.0好用吗? 吃完晚饭了... 可不可以让 CppWebBrowser1的背景不是白色? 热热热!!!热疯了!!! 我的喇叭哪儿去了? 我的PB程序出了问题了!!! sql server中哪个函数是用于字符串与整型之间转换的? 我想限定文本输入框只能输入10个汉字或20个英文字符,但文件输入框却只能输入10个英文字符,如何解决? 当我将这样的字符串“dsdsdsdfsdffsdsdfsdfsfdsdfsdfsfsfdsdffs.....”放入我的表格中时,无论怎样设置也不折行,影响了部局,如何解决? MFC中视图(view)是怎样随着主窗口的大小改变而改变的。 急!请教!!猫猫连接,用数据管道同时访问两库,访问不到对方的网络库(sybase) 关于电影下载 我已经把一个exe文件加入到我自己的程序中了,请问在我的程序中应该样调用该exe文件呢? 哪位高手知道RTF格式的含义?或者更好,知道Rxlib中的RXRICHEDIT控件中识别RTF格式的方法? Delphi编写的DLL在VC下不能使用 请问哪儿有电工的<>的电子版下载?我只有这么多了 msdn2001年4月版的讨论 请问哪儿有电工的<>的电子版下载? 请教高手!!!! 请进 各位:周末愉快!为何我的多表查询用updatebatch提交时总是报错? 我不明白!!!! 请问,BAS 与 VBJ 有什么区别吗?为何他们安装在同一个目录呢? 如何得到系统进程的列表? vi下如何撤销操作? 我们知道MFC中的对象序列化做得很好,不知在DELPHI中怎样来实现对象的序列化? 我已经学过C++,想学VC++请问哪本书入门比较好啊? 欢迎使用技巧酷skillstore beta 1.00 有个可以显示IP的QQ,很不可思议,讨论一下好吗? 怎样在程序运行的时候加上参数,比如说双击文本文件打开记事本 谁有运行后烧硬件的程序 用VC开发如何实现网页的同步浏览呢? 动态产生的datawindow怎样调整它的显示? 怎么从ORACLE白痴到高手 怎样通过程序员考试??????? 庆祝北京成功 关于声音的特性吉他是众多人喜爱的一种乐器.吉他用久了,发生走调,必须请专业的乐师调试.乐师主要是调节琴弦的_________.吉他一般有六根琴弦,这六根琴弦的_________、_________大致一样,琴弦的 初二科学大气压的题高压锅盖上有一个空心柱为排气孔,空心柱上戴着一个帽子为限压阀,当高压锅内气体压强超过安全值时,锅内气体就会冲出限压阀,气体跑出一部分,使锅内气体压强减小.现 49,51,12,37,1,0.5,85中哪些是质数,哪些是合数,哪些是偶数,哪些是奇数 初二物理声音的特性2学案上的 初二的科学关于大气压如图所示,盛水容器中浮着一装有水的小杯A,倒扣一小杯B,给容器加热并使容器中水沸腾,再继续加热时,A、B杯中的水能否沸腾,为什么? 下列数中,是质数的是17 27 57 87 初二物理题,声音的特性.将齿轮固定在玩具电动机的转轴上,启动电动机,使齿轮敲打塑料片,注意这时塑料片发出声音的高低.使玩具电动机的转速逐渐增大,塑料片发出的声音有什么变化?速度 体积为1×10的-3次方立方米的酒精,质量为多少kg.将它倒入一个质量为0.2kg、底面积为1×10的-2次方平方米的平底容器中,放在水平桌面上,容器对桌面的压强为多少Pa?〔酒精的密度为0.8×10的3次 一米的九分之五米是几米? 密度 (5 17:20:35)若把打气筒的出气口封住,再将活塞向下压的过程中,被封闭在气筒内的空气的质量,体积,密度3个物理量中,不变的是?变大的是?变小的是? 关于重力的疑问 (7 8:51:20)物体的重力可以不在物体上吗? 7米的九分之一与1米的九分之七长度相等吗 密度 (5 17:19:40)如果水结成冰的话,密度是变小还是变大 有一个瓶子,装满水后总质量为210g,在瓶中放进一块质量为45g的金属片,然后再装满水,总质量为251g,该金属的密度是多少?为什么这样做? 7分之6比多少米短5分之1米,比9分之6米长的是 水的密度 (5 12:1:17)有一枚奥运会的纪念币,它的质量是16.1克.为了测量它的体积,把它放入一盛满水的量筒中,侧得溢出的水重为1.8×10-2牛.〔1〕求制作纪念币的金属密度;〔2〕盛满水的量筒在 新概念英语的第43、67、91、99课的题目是什么?第一本,题目中文和英文都要.要百分百正确哦 2+9分之4=( ) 3-6分之1-6分之5=( ) 4-12分之5=( ) 求解,15.17.18.19 急,好评的 新概念英语第一册99课文 9.84÷5分之3 5又12分之5÷1.3 水的沸腾 (13 18:15:37)水沸腾时为何响声比沸腾前小,沸腾时的气泡为何上面比下面大,沸腾前的气泡为何下面比上面大. 求新概念英语91-92的课文第二册 高一化学(必修2)的一道题目,麻烦写出具体的解题过程,谢谢!若要使0.5mol甲烷完全和氯气发生取代反应,并生成相同物质的量的4种取代产物,则需要氯气的物质的量为( )A.2.5molB.2molC.1.25mol 17.18 新概念英语第二册 91课作文急用 麻烦写出具体过程就是质量监测最后一题:某有机物在常温下为液体,常用作油漆的溶剂.为测定该有机化合物的化学式,将该有机物7.8g在氧气中完全燃烧,得到的二氧化碳在标准状况下体积为13 刚倒完热水的热水瓶,立即盖上盖子,冷却后却不易拔出塞子,请你说明其中的道理.答案上写的是水冷却后使瓶内气体减少,为什么气体会减少啊? 新概念英语第二册91课摘要写作答案要2篇。左右2篇都要 高一化学题(必修2) 请写出解题过程,谢谢!镭是元素周期表中第七周期的IIA族元素,下列说法错误的是( )A.氢氧化物呈两性B.碳酸盐难溶于水 问一道初二关于大气压的物理题(微难)“把空罐头瓶的瓶口朝下,并将其按入水中,可见始终不能使瓶内充满水.”这句话答案上说是错的,我问老师时她推理了一下然后说应该是瓶内一滴水都 写出60的全部因数,其中质数有?合数有? 1.某溶液可能含有Cl-、SO42-,为了检验它们,正确的操作是( )A.先加BaCl2溶液(若有沉淀滤去),在再加AgNO3溶液B.先加AgNO3溶液(若有沉淀滤去),在再加Ba(NO3)2溶液C.先加Ba(NO3)2溶液(若有沉淀滤 一物理大气压问题,初二的~在吸管中间剪一水平切口(吸管未剪断)从切口处折弯吸管,使两段大致成直角,把吸管一端放进水里,从另一端用力吹气,观察到的现象是( )1.切口处有水向上喷出 2.切 75的全部因数有( ),其中( )是质数,( )是合数. 下列关于气体摩尔体积的几种说法正确的是 ( )A.22.4 L任何气体的物质的量均为1 molB.非标准状况下,1 mol任何气体不可能占有22.4 L体积C.0.1 mol H2、0.2 mol O2、0.3 mol N2和0.4 mol CO2组成的混合 初二一道关于大气压的题目SARS病毒可通过空气传播.当我们吸气时,胸部扩张,胸内肺泡跟着扩张,于是肺的容积增大,肺内空气压强_____,_____使含SARS病毒的空气经鼻腔、气管进入肺中;呼气时,胸 在75的因数中,质数有…合数有… 化学工作者把烷烃、烯烃、环烷烃、炔烃……的通式转化成键数的通式,给研究有机物分子中键能大小的规律带来了很大方便.设键数为I,则烷烃中碳原子数跟键数的关系通式为:CnI3n+1,烯烃 一道物理题关于大气压2在研究水的沸点与气压关系的实验中:(1)用酒精灯对烧杯内的水加热,当大气压为1标准大气压时,加热到_______ ,水就开始沸腾.(2)熄灭酒精灯,水_________沸腾.(3)再将装有注 在75因数中,质数有( ),合数有( )  ABCDE是同周期的5种元素,AB的 最高价氧化物对应的 水化物呈碱性,且碱性B>A,;CD的气态氢化物的水溶液呈酸性,且酸性C>D;5种元素所形成的简单离子中,E的离子半径最小,则他们的 原子序数由 初二物理题(关于大气压)1.牛奶罐上只开一个小孔,就很难倒出牛奶,这是为什么?2.医生用注射器打针前,要把药液吸入注射器,简单描述医生如何把药液吸进注射器,并作出解释.3.若房顶面积为 75的全部因数有几个,分别是多少?其中什么是质数,什么是合数? 高一化学必修一42页到43页的复习题答案 1,为什么人能用吸管吸出饮料?2若某人同时将2根吸管含在嘴里,一端放在饮料里,一端放在杯外,他可以喝到饮料吗?为什么?不要非常详细,易懂,说明重点就行 因数,倍数,质数,合数的含义是什么? 在密闭容器中,将碳酸氢钠和过氧化钠的混合粉末加热到250℃,使其充分反应,最后测得残余固体由两种化合物组成,分别为a mol和b mol,且a>b.回答下列问题:(1)反应后容器中固体的成分及其物质 有关大气压的!急``````````````````````实验:在广口瓶中放入浸满酒精的棉花并把它点燃,用一个煮熟的鸡蛋剥去皮并用它堵住瓶口,问:看到什么现象?如何解释这种现象? 42的因数有哪些,其中质数有哪些,合数有哪些,奇数有哪些? 在常温常压下 取下列四种有机物各1mol 分别在足量的氧气中燃烧 消耗氧气最多的是A.C2H5OH B.CH4 C.C2H4O D.C3H8O2 我看有同学把这些有机物分成水和另一种有机物就能很快判断 原理 1.水沸腾时的温度时96摄氏度,表明水面的大气压大于一个标准大气压.2.没有大气压的地方,车子的车胎会更容易爆裂.3.氢气球在没有大气压的情况下将能够上升得更高. 42的因数有哪些?在这些数中( )是质数,( )是合数. 分析下每个选项 思路.·已知Na2SO4和NaCl的混合溶液中,Cl-的物质的量浓度是Na+的物质的量浓度的0.6倍,则下列叙述中正确的是(    ) A.SO42-离子和CL-离子的物质的量之和等于Na+的物质的量B. 有关光的反射在水平桌面上有一点光源S,在桌面正上方一米处有一水平放置的平面镜.要使光源发出的光经平面镜反射后,照亮桌面上离光源1m远的B点,平面镜应如何转动?试做图说明. 初二科学题.关于大气压有一“苏泊尔”牌高压锅的直径为24cm,限压阀气孔的直径为35mm,限压阀质量为100克,是估算当正常使用时,锅内气压约为多大?要完整的苦厄写步骤 把 1、2、12、37和51填入下面( )里.奇数( ) 素数( ) 合数( ) 声音的特性一部分吹气球的时候一不小心会把祈求吹破,这时会听到很响的“啪”的一声,对于产生很响的原因,小华有以下猜想:A这时由于气球吹破时引起空气急剧振动而发出的声音B这时由 初二科学关于大气压压强的题目一定要科学的! 1、2、24、37和51这些数可以填入哪个括号.( ) ( ) ( ) 奇数 素数 合数1、2、24、37和51这些数可以填入哪个括号。( ) ( ) ( ) 奇数 素数 合数
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn