Xcode8 带来的新特性和坑 (2)

Xcode8 带来的新特性和坑

Debug Memory Graph和Runtime Issues可以配合使用,通过Debug Memory Graph分析内存关系完成后,点击Runtime Issues可以看到已经发现的内存问题。

Swift 3

Xcode8带来了新版本的Swift3,新版本的Swift变化较大,如果旧版的Swift项目在Xcode8上编译可能会失败。对此,苹果为开发者提供了Swift迁移工具,听说不太好用(我没用过这个工具)。

如果不想立刻就迁移到Swift3,可以在Builder Settings中进行设置,选择Use Legacy Swift Language Version设置为YES,就可以继续使用旧版本的Swift2.3。

Xcode8 带来的新特性和坑

其他更新

Xcode新版字体,SF Mono Regular字体。更新Xcode之后我比较喜欢这种字体,看起来代码非常工整。

被编辑的行高亮显示。之前Xcode有个插件就是这个功能,Xcode8把高亮功能集成进来了,使用起来很方便。

最新版的API文档,展示样式发生了很大的改变。

更方便的生成文档(就是喵神写的VVDocumenter),在Xcode8中可以将光标放在方法上面,通过option + command + /快捷键生成文档注释。

Xcode8适配

XIB和Storeboard适配

在Xcode8之前,创建一个XIB或SB文件,都是一个600*600的方块XIB文件。在Xcode8之后,创建的XIB文件默认是6s尺寸的大小。

但是Xcode8打开之前旧项目的XIB或SB文件时,会弹出下面的弹框, 这时候一般直接选择Choose Device即可。

Xcode8 带来的新特性和坑

但是这样有个问题,如果Xcode8打开过这个XIB文件,并选择Choose Device之后。其他的Xcode8以下版本的编译器,将无法再打开这个文件,会报以下错误:

The document “ViewController.xib” requires Xcode 8.0 or later. This version does not support documents saved in the Xcode 8 format. Open this document with Xcode 8.0 or later.

有两种方法解决这个问题:

你同事也升级Xcode8,比较推荐这种方式,应该迎接改变。

右击XIB或SB文件 -> Open as -> Source Code,删除xml文件中下面一行字段。

<code>

  <capability name="documents saved in the Xcode 8 format" mintoolsversion="8.0"/>

</code>

编译错误

升级Xcode之后,Xcode8对之前的一些修饰符和语句不兼容,会导致一些编译错误。这种错误导致的原因很多,这里大致列几条,各位还是根据自身遇到的情况做修改吧。

之前一些泛型相关的修饰符,nullable之类的有的会报错。

CAAnimation及其子类,设置代理属性后,必须在@interface()遵守代理,否则报错,等等。

权限适配

这应该算iOS10系统适配的范畴,最近这两个都在弄,所以就直接和Xcode8适配一起写出来了。

在iOS10之后需要在Info.plist中,添加新的字段获取权限,否则在iOS10上运行会导致崩溃。下面是一些常用的字段,如果有缺少的麻烦各位评论区补充一下。

KEY权限
Privacy – Camera Usage Description   相机  
Privacy – Microphone Usage Description   麦克风  
Privacy – Photo Library Usage Description   相册  
Privacy – Contacts Usage Description   通讯录  
Privacy – Bluetooth Peripheral Usage Description   蓝牙  
Privacy – Location When In Use Usage Description   定位  
Privacy – Location Always Usage Description   后台定位  
Privacy – Calendars Usage Description   日历  

参考资料:developer.apple

https://developer.apple.com/library/content/documentation/General/Reference/InfoPlistKeyReference/Articles/CocoaKeys.html

推送通知

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zwjfxf.html