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

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

HTML文档下载 WORD文档下载 PDF文档下载
相隔两周,苹果发布Xcode 6.3 Beta 2更新,相较上一版本,共计16处改动,增强Playground性能,支持在Playground中使用Markdown语法写注释文档。而几经修改的Swift语言即使已更新至1.2版本,其语法依然非常不稳定。

春节期间,苹果发布了版本号为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”表达式。如:

if someValue > 42 && someOtherThing < 19, let a = getOptionalThing() where a > someValue { }

  • 这个@autoclosure属性拥有了第二种形式。@autoclosure(escaping) 和@autoclosure有着同样的调用形式,但是它允许产生结果的闭包在实现中缓存,如:

func lazyAssertion(@autoclosure(escaping) condition: () -> Bool, message: String = "") {lazyAssertions.append(condition) // escapes}lazyAssertion(1 == 2, message: "fail eventually") 

Swift语言的改变

  • 空合运算符(??)的优先级现在比逻辑运算符和比较运算符高,但是比转换运算符as和区间运算符低。这个提供了非常有用的特性,如:

if allowEmpty || items?.count ?? 0 > 0 { 

  • “&/”和“&%”运算被移除,这种行为分别使用“/”和“%”代替,不过这种形式已经冗余了。
  • 从一个ASCII码构造一个UInt8需要一个ascii关键字。使用一个非ASCII的Unicode字符集将产生一个中断。
  • C类型的size_t现在以Int的形式导入到了Swift中,这减少了大量Int和UInt间的显式类型转换,同时和返回Int型的sizeof更好的对齐。
  • 没有继承自NSObject的类但是确实继承了一个@objc标志的协议时,则需要给这些方法,属性和构造器用@objc标记从而来满足协议需求。如:

@objc protocol SomethingDelegate { func didSomething() } class MySomethingDelegate : SomethingDelegate { @objc func didSomething() { … } }


作者简介:

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

鲍尔默宣称微软有一百万台服务器,这个数字真的靠谱吗? 全球6000开发者:iOS、Android、WP最痴情谁? 提升网站知名度的十大方法 IBM移动平台首席架构师Greg Truty:MobileFirst从底层架构开始 Hallo.js:一款所见即所得的Web编辑器 数据分析≠Hadoop+NoSQL,不妨先看完善现有技术的10条捷径 移动周报:百度收购91,19亿美金背后的博弈 植物大战僵尸2:“免费+内付费”模式引发争论 [CTO俱乐部第103期] 高德和四维图新技术高管谈地图导航的发展与挑战 Java 7爆最新漏洞,10年前的攻击手法仍有效 Twitter联合创始人Biz Stone谈Facebook用户体验 提倡零广告 英雄会:企业的人才漏斗 开发者的武林大会 一次错误估算带来的启示 苹果开发者中心被黑:开发者信息或被窃取 SIM卡加密存漏洞 将影响数亿计的手机用户 搜狗茹立云:探索引擎产品落地 浏览器+搜索模式会成主流吗? 大势所趋,IBM Acme Air至少使用Netflix的5个开源工具 【观察】跨越“朦胧期”的云计算:产业、核心技术、生态圈以及突破点 Rovio Account:平台化之路修成正果 甲骨文总裁马克•赫德采访实录:用软硬件集成一体机打垮对手 如何一步一步打造高可扩展性的应用程序? 用Java编程,请保持简洁! 从安全隐患带来的商机来看,Hadoop同样很美 三年增四倍:如今谷歌服务占北美互联网流量四分之一 决战低功耗?Intel明年推低功耗Xeon处理器 在软件架构上增加新功能的注意事项 90后的代码界“女神”李雪:在编程中找到自己的“灵魂” 大数据之路不乏荆棘,然则其中的机遇却高于一切 iPhone销量令人意外:苹果Q3财季净利69亿美元 同比下滑 励志:12位早起的IT大佬们让小伙伴们都惊呆了 独家:苹果5周年限免神作,BADLAND开发者访谈 传递指针的问题 float到底能保留几位小数? 关于前途的杂谈---选择C程序员还是JAVA程序员? 2003打开2002的报表,显示时特别慢 Dialog中的wm_char 怎样重新组合字符串 第二次提问 着急呀 如何读取空字段不出错 愚蠢的问题——请各位大哥指导 数据库版本冲突问题,各位不防进来看看啊! 查找一个区间的记录 有没有在vc6.0下用vc.net控件的方法呀? 怎么做细线呀? 请问各位高手,怎么叛断面面关闭!!! 很多的程序员平朋友们对档案和户口问题都不是很清楚吗,我就我所知的来说说,希望对大家有用 【delphi三(两)层结构如何调用oracle中的存储过程(参数含游标)】 有DX能翻译下面的代码吗? access中sql语句 insert into table1(id) values(1);insert into table1(id) values(1);通不过?? 文件拷贝 请问华康字体库,哪儿有下载? 关于sametime无法登录的问题! 精彩不容错过 怎么样上传文件 请问,如果利用pc机,实现和璇铃声于彩色图片的下载,应该怎么做? **sql语句的问题** 求救!!!!!熟悉数据库加密的高手请进!!! DELPHI为什么会自动退出? 帮帮忙,新手求问 用java怎样判断一个Email地址是真实存在的?(救命呀!~~~>_<~~~) C++BUILDER调用VC++DLL内函数问题? dephi+oracle 从TMemo存读varchar2类型数据(一篇文章) 数据超过256个字节 其中有换行符 在solaris中如何用命令行改变IP地址,并且永久生效。 mysql中的备注字段应该是什么英文,我英文不好。我只知道int, char. 怎么样知道在另外一台机器上运行的程序是否死掉了,另外一台机器是否死机? 请问怎样修改、删除、追加XML中子项的值? showdialog 打开的 form 怎么返回值? 我是学计算机的,都大四了,外语四级还没有过.不知道对以后找工作有多大影响? 在lotus中一般打印用什么方法??给分!!!急!!! 建议post时增加贴图功能. 除了吹牛,还会干什么? 执行UPDATE语句时候,执行条件变化时候速度有很大不同 给大家一个免费的电子邮箱 如何将一个xml中的Element或Node添加到另一个xml中?100相送!!! 高手进来。我不知道为什么经常出在数据库不能更新的问题。?? 精彩不容错过 Runtime类使用时遇到一个问题,请高手指点,先谢了! 需要UNIX网络编程(第2版 第一卷)的电子版本的书籍! 怎样让builder.parse()忽略DTD找不到的错误继续分析? 各位大侠,请帮忙,jsp页面出现空白,怎样解决? 在JBuilder中有多个Frame如何指定其中(任意一个为首先启动的Frame) 如果有入口函数main,系统就认为是PUBLIC 类?? 外狗不掐家鸡什么意思?外狗不掐家鸡我真的不懂 为什么傲慢和偏见是文明交流互鉴的最大障碍 VRay / 图像采样 / 最小比率 最小比率:定义每个像素使用的样本的最小数量.值为0意味着一个像素使有一个样本,-1意味着每两个像素使用一个样本,-2则意味着每4个像素使用一个样本,依次类推. 百年积弱叹华夏,八载干戈仗延安.试问九州谁作主?万众瞩目清凉山这是陈毅在一次会议闭幕式作的一首诗,这次会议应该是什么会议 诗中所提到的“把载干戈”是指什么 VRay / 图像采样 / 最小比率 最大比率所蕴藏的意义? 如何理解vray发光贴图里的“半球细分”?为什么不叫“模型细分”而叫“半球细分”!3d里面的材质球不是圆球吗!为什么会和半球扯上关系! vray里名怎么理解越详细越好比如抗锯齿,Area,发光贴图准蒙特卡洛灯光缓冲最小/大采样模型细分插补采样vray里名怎么理解越详细越好比如抗锯齿,Area,发光贴图,准蒙特卡洛,灯光缓冲,最小/大采 竹碳在水里产生的气泡是什么气体 “判断句”用英语怎么说? 英语判断句1.What did you do yesterday evening?2.Have you posted the letter for me?请判断这两个句子,然后分析,不对的请做分析,第一句的正确答案是:What were you doing yesterday evening?为什么不能用过去时呢; 而 谁能提供几个英语判断句, 土库曼斯坦货币20年 发行金银纪念币老司机雾中迷路高速逆行 交警支招大雾温州关停淘汰159家电镀企业 10人美新书爆料奥巴马怕应酬克林顿 难独自肯尼亚少女遭多人强奸 嫌犯仅被罚剪草摩根大通:今明两年中国跨境并购将非常美国务卿回应监听活动:某些方面“太过王毅强调:一定要打造好海外民生工程美使馆神秘“白盒”遍布全球 德媒称其澳大利亚警方追捕偷车贼 造成路过少年日本政府拟制定相关措施援助海外核爆受三里屯预警,中国是否存在针对“西方人分享帖!土豪网友分享沉香珍藏!遗精是病吗?疑惑吗?谈谈男人的大姨妈年度超值机型:乐1s VS 360奇吴宗宪新节目将接档《康熙来了》 内容尼日利亚天然气厂火灾致上百死 大火持孙永波在哈尔滨市检查圣诞节期间公共安安徽一学校要贫困生出钱请领导吃饭 校未婚男性朋友们,千万不要与ED对号入没事别随便思考人生——让生活慢下来每年都吃平安果,但你知道其实西方有两铸剑天下明星成长日记流氓之我就是神魔法战纪秀逗魔导士同人之迷途水浒之极品武二郎末日沙场沐春风宋末商贾第二部神临天下玩游戏傍大神五泄旅游上虞旅游埃及博物馆旅游角山旅游冉庄地道战遗址旅游东钱湖旅游绿岛旅游汪湖生态旅游区旅游明霞洞旅游长乐林场旅游香格里拉印经院旅游
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘