返回 登录
0

Xcode 7.3 Beta发布:Code Completion终于达到「智能」模式!

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

图片描述

新年刚过,我们还沉浸在Swift开源的喜悦中,苹果不留意的发布Xcode 7.3 Beta版,认真试用了一下发现这次更新并不是很大,以苹果的风格估计大的更新会在7.3 Beta 2中,老码在这里列举几个要点:

关于Xcode IDE新加特性:

一、Static Analyzer(静态分析器)

  1. 如果一个方法或者函数已标识返回值为非空值(nonnull),但是实际返回了一个nil值,此时静态分析器会提示警告;另外如果方法或者函数其参数被标识为非空(nonnull),但是却传递了一个nil值,此时静态分析器也会报警告。
  2. 静态分析器也会分析Objective-C中泛型的类型匹配问题,如果类型不匹配则会报警告。
  3. 静态分析器会分析本地化包缺失的情况,该功能缺省是关闭的,可以在 “Static Analyzer-Generic Issues” Build选项里面把 “Missing Localizability” 选项设为 “YES” 来开启该功能。

二、代码自动完成 (Code Completion)

代码自动完成功能更加智能,可以根据更少的关键词去匹配更符合你希望的结果,如你可以通过输入函数或者方法名字的大写字母来快速匹配该函数或者方法;比如你输入“myDelegate.tveh”,这里的myDelegate是UITableViewDelegate类型,那么XCode会给出tableView(_ tableView: UITableView, estimatedHeightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat 做完成提示; 也支持模糊匹配,比如你输入“myView.color,这里的myView是UIView类型,此时则会把所有包含color单词的属性列举出来,比如“tintColor”,“backgroundColor”。

三、调试功能(Debugging)

  1. 在View Debugger中约束带将以比率的方式表现当前视图的约束值从而提高可读性。
  2. View Debugger探测器会为选择的约束显示其关联视图,属性和值。
  3. View Debugger会在Inspector中显示NSWindow的Size信息。
  4. View Debugger在辅助编辑器中增加了额外的选项,可以以3D画板的方式浏览与此视图相关的实现文件,委托,以及控件的Target代码。
  5. 当我们在Debugger中查看这个视图时,与视图相关的属性如果是对象,则会在其Inspector中显示一个箭头符号,我们可以点击该箭头直接跳转到对应的实现文件。
  6. View Debugger中的3D旋转功能得到增强。
  7. 在调试导航器面板中会为当前在View Debugger中处于查看模式的对象增加一个上下文菜单,同时在View Debugger的画布中允许打印对象的描述信息。
  8. 在View Debugger的查看模式下允许你过滤视图的地址,标签,标题甚至它的父类。

四、Apple Watch快速切换功能

iOS 9.3支持iPhone与多个运行iOS 9.2系统的Apple Watch配对。可以通过iPhone上的Watch应用快速切换已连接的Watch。在我们的开发时候可以通过Devices窗口切换Watch模拟器。

关于Swift 2.1以及Objective-C新加特性:

老码觉得这个版本应该是Swift2.1的末版了,预计在Xcode 7.3 Beta 2中将包含Swift 2.2的特性,这里只是有几处很小的改进:

一、编译器

1.1 支持可选的toolchain:

Xcode现在支持可选的toolchain或者说支持第三方的toolchain,我们可以从Swift.org中下载。当使用可选的第三方toolchain时,那么Xcode代码符号索引,构建,编译都是通过可选第三方toolchain而不是本身默认的。可选的第三方toolchain必须手动下载并且安装到/Library/Developer/Toolchains/ 或者~/Library/ Developer/Toolchains/目录下,这样Xcode才可以识别。

  1. 在Preference->Components(Download之后)里面显示已安装的toolchain。
  2. 在这个配置面板可以激活或者取消激活选中的toolchain,注意如果toolchain改变需要重启XCode。
  3. 一个当前激活的toolchain对于当前所有的工程有效,除非你换别的toolchain。
  4. 按住Control键点击一个安装的toolchain将会跳转到toolchain的Finder目录,我们可以验证它的签名或者删除。
  5. XCode Server Bots可以被配置使用安装在/Library/Developer/Toolchains/下的toolchain。

现在ToolChain的限制条件:

  1. Swift代码迁移器只在默认的toolchain下有效。
  2. Playground仅在默认的toolchain下有效。
  3. 只有在默认toolchain下编译的App才可提交到App Store。
  4. 激活一个toolchain只会影响XCode IDE而非其器命令行程序,可以通过命令行使用可选第三方的toolchain,如xcrun --toolchain swift`` 和``xcodebuild TOOLCHAINS=swift,当然也可以通过简写的方式:xcrun –toolchain swift或者xcrun –toolchain org.swift.20151231a`。
  5. 如果激活的可选第三方toolchain对swift的scheme或者内存运行时分配做了改变,那么Instruments可能无法解析swift符号以及无法用Allocations工具来跟踪内存分配情况。

二、连接

苹果的私有框架已经从iOS/watchOS/TVOS SDK中删除了,如果你的程序无法连接请考虑你是否连接了苹果的私有框架。使用私有API框架是不被推荐的同时也无法发布到App Store。

三、调试

如果断点停止在Swift代码中,且该处代码以来一个外部被编为二进制格式的库或者框架时,Xcode不再崩溃。

以上就是Xcode 7.3 Beta新功能总结,希望对大家有用,借此机会老码团队祝大家新年快乐,2016万事666,身体不生病,撸码无Bug。

最后以老码丑哥最新创作的武侠歌曲《江湖念》收尾,献给大家:

曼舞雪花轻吻山的衣裳
你说陪我去看远山的模样
一缕青墨勾勒爱的味道
注脚却是江湖别怨泪扬
三世情怀只为红袖过往
爱的种子散漫千岁的长廊
你说江湖美美不过携手描霓裳
我愿为你粉黛淡尽青丝镶
我愿为你守候阁楼红烛光
江山美山誓海盟不过美梦一场
江湖路下着雨
挥别在追风的路旁
却~ 驿站粉妆
心抚摸雪的冰凉
思念是信仰
江湖路遥心也遥

评论