阅读更多

0顶
0踩

移动开发
春节期间,苹果发布了版本号为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江湖》一书作者。
  • 大小: 21.6 KB
  • 大小: 35.3 KB
来自: CSDN
0
0
评论 共 0 条 请登录后发表评论

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • 用好这13条SQL语句,就能解决90%的问题(上)

    数据科学中90%的任务,可以借助这13条SQL语句解决。

  • 数据库教程mysql实验6_MySQL教程6-数据库的基本操作

    MySQL 安装好之后就可以进行数据库的相关操作了。数据库就像车库一样,每一个小区里都有很多车库用来存放车,它们都有唯一的车库号。同样,在 MySQL 中也可以创建多个不同名称的数据库存储数据。SQL 是一种专门用来与数据库通信的语言,我们使用 SQL 来操作数据库。接下来将通过丰富的实例对 SQL 语言的基础和数据库的基本操作进行详细介绍。数据库的操作包括创建、删除、修改数据库,这些操作都是管理...

  • SQL 能做什么?

    SQL可以创建新的数据库及其对象(表,索引,视图,存储过程,函数和触发器)。 SQL可以修改现有数据库的结构。 SQL可以从数据库中删除(删除)对象。 SQL可以TRUNCATE(删除)表中的所有记录。 SQL可以对数据字典进行COMMENT。 SQL可以RENAME一个对象。 SQL可以从数据库中选择(检索)数据。 SQL可以将数据插入到表中。 SQL可以更新表中的现有数据。 SQL可以从数据库表中删除记录。 SQL可以在数据库中设置用户的GRANT和REVOKE权限。 ...

  • MLSQL解决了什么问题

    先看看做算法有哪些痛点(我们假设大部分算法的代码都是基于Python的): 项目难以重现,可阅读性和环境要求导致能把另外一个同事写的python项目运行起来不得不靠运气 和大数据平台衔接并不容易,需要让研发重新做工程实现,导致落地周期变长。 训练时数据预处理/特征化无法在预测时复用 集成到流式,批处理和提供API服务都不是一件容易的事情 代码/算法复用级...

  • 苹果又立 Flag,ABI 真能在 Swift 5 实现稳定?

    近日,Swift 开发项目组的主管 Ted Kremenek 发布了一篇“Swift 5: start your engines”的文章,他表示 Swift 4 更新工作已基本完结,将在今年晚些时候正式发布,同时这也意味着 Swift 5 的开发工作即将展开。...

  • swift 生命周期_Swift 五年,ABI 终于稳定了!

    原标题:Swift 五年,ABI 终于稳定了... 曾于 2017 年正式担任 Swift 语言开发项目组主管 Ted Kremenek 于近日在 Swift 官方博客上正式宣布,Swift 5 发布了!而这一次他也成功完成了彼时走马上任时立下的 flag,为 ...

  • 苹果iOS开发系列--详解Swift 3.0语言的重大变化

    概述 从写第一篇Swift文章的时候到现在Swift已经从...在WWDC16上Apple公布了Swift3.0,从中可以看出Apple对Swift的重视,以及Swift开源半年以来的进步。尽管对于开发人员来说Swift3.0的变化会令你的程序几乎处处报错

  • python语言支持苹果系统吗_苹果发布全新开发语言,有望成功代替 Python ?-可编程逻辑-与非网...

    苹果开发者大会 WWDC 2019 在北京时间今天凌晨开幕。在这场大会上除了「史上最难看 Mac 主机」、首次出现的 iPadOS 以外,我们还终于可以对饱受诟病的 iTunes 说再见了...Swift 是苹果于 2014 年发布的全新开发语言...

  • Swift 中的热重载

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VHJV1HA9-1657855879470)(https这一年是2040年,我们最新的MacBookM30X处理器可以感知到瞬间编译大型Swift项目,听起来很神奇,对吧?...

  • SQL如何处理这几个常见问题

    点击上方SQL数据库开发,关注获取SQL视频教程SQL专栏SQL数据库基础知识汇总SQL数据库高级知识汇总SQL在使用过程中,经常会遇到一些奇奇怪怪的小问题,今天给大家总...

  • SQL 性能问题解决方案

    MySQL笔记(六):1.什么原因导致数据库性能瓶颈问题 1.数据库连接数 2.表数据量大(你可能会加索引,加索引后,命中索引还好;如果命不中索引,将会进行全表扫描,数据量越大,效率越低)(数据库索引,是硬盘级别的索引。基础B树实现,它是存储在硬盘里面IO 操作。索引越多,树越大,查询效率也会降低) 3.硬件资源问题导致瓶颈(QPS/TPS) (每秒事务数/每秒查询数) 2.数据库性能优化方案...

  • Swift 能不能取代 Objective-C?

    其实到现在为止 Swift 离替代 Objective-C 还是很遥远,因为 Apple 内部一直在用 Objective-C 来做一些 Framework 的开发,低层也不可能...首先我们先去探究一下为什么苹果会选择 Objective-C 作为官方开发语言?...

  • 从Java/Android到Swift iOS开发:语言与框架对比

    我从2009年开始做Android开发,开始接触Swift是在2014年底,当时组里曾经做过一个Demo App,感觉技术还不够成熟没有正式发布。2016年初我们正式使用swift开发上线了销售助手App产品,积累了比较丰富的swift项目实战...

  • Swift 5新特性详解:ABI 稳定终于来了!

    近日,苹果开发者博客更新了一篇关于Swift 5的文章,带来了Swift 5新特性的消息,其中最受开发期待的莫过于iOS 12.2将带来ABI 稳定性,这意味着基础库将植入系统中,不再包含在App中,应用程序的体积会更小,更多新...

  • Apple的Swift 4.2语言新增功能

    Apple的Swift编程语言的4.2版使该语言更接近稳定的应用程序二进制接口(ABI),并为将来的版本提供了二进制兼容性。 ABI稳定性使使用不同语言版本编译的库和应用程序之间具有二进制兼容性。 [构建移动应用程序的...

  • Swift与Objective-C:重新认识苹果的编程语言(1)

    就在同一天,iBooks商店当中上架了一份长达550页的Swift语言开发指南。开发人员们同时还能够体验Xcode 6 beta测试版,它允许我们利用这款新语言进行应用程序开发。总而言之,让Swift与Cocoa工具包顺畅协作所必需的一

  • 【Java基础知识 1】编程语言类型有哪些?我心中的TOP1编程语言,什么是java跨平台性?

    一个计算机的机器指令的集,就构成了该计算机的机器语言,即计算机可以直接接受、理解的语言。Java运行时是Java程序运行的基础,它提供了一个安全、稳定、高效的运行环境,使得Java程序可以跨平台运行。总的来说,...

  • Swift 首次调试断点慢的问题解法 | 优酷 Swift 实践

    Swift 调试断点是与开发体验关系最为密切点之一,优酷 iOS 团队整理了解决方案并分享,希望能帮助到大家。

Global site tag (gtag.js) - Google Analytics