博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Xcode 8带来的新特性和坑
阅读量:5910 次
发布时间:2019-06-19

本文共 1838 字,大约阅读时间需要 6 分钟。

这么晚还写这些,主要是有些东西以前没用到,最近使用到,所以写下算做个记录吧。 ##正文 ###Interface Builder Xcode6中在原有的Auto layout的基础上,添加了Size Classes新特性,通过这个新特性可以使用一个XIB或者SB文件,适配不同的屏幕以及iPhone和iPad两种设备。(本人喜欢代码控制)

  • 创建一个XIB文件进去,点击下面红框的位置,会出现从3.5寸-5.5寸一系列屏幕尺寸的选项。直接点击不同屏幕尺寸,以及横竖屏选项,切换不同的屏幕显示。在iPad上还可以选择是否分屏,功能非常强大。在右边有一个Vary for Traits ?按钮,点击这个选项就可以同时显示所有可选的屏幕样式,只是显示上看起来比较多,没啥卵用(默认的XIB是6s的长方形,比之前正方形看起来舒服了).

在Xcode8之前,创建一个XIB或SB文件,都是一个600*600的方块。在Xcode8之后,创建的XIB文件默认是6s尺寸的大小。 Xcode8打开之前旧项目的XIB或SB文件时,会弹出下面的“弹框”, 这时候一般直接选择Choose Device即可。

但是这样有个问题,如果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文件中下面一行字段(如下)。

###Target中General的变化 在Xcode8中可以通过Automatically manage signing选项,让苹果为我们管理证书和配置文件,设置也都是由苹果来完成的。在Xcode8中新建项目,这个选项默认是被勾选的(我也不习惯用,我都是debug release分开设置,这样做demo时候直接用debug 通配符的profile)。

###Xcode插件 在Xcode8中所有第三方插件都失效了,在之前很多iOS开发者,都是通过来管理插件的,现在Alcatraz也是不可用的。但是Xcode8自身也对编译器进行了升级,将一些比较好的插件功能加入到Xcode中(我常用的VVDocumenter-规范注释生成器,快捷键是“option + command + / ”)。

在Xcode8中支持了开发插件工程,并且为我们提供了一个插件模板,开发的插件可以上传到App Store下载。苹果这么做有一个原因在于,之前Xcode和插件是运行在同一个进程的,所以插件的崩溃也会导致Xcode崩溃。苹果现在将插件作为一个单独的应用程序,分开进程运行,不会对Xcode带来其他影响。

###Runtime Issues 在开发过程中,因为语法或明显的代码错误(例如Retain Cycle),编译器可以发现并报黄色或红色警告。但是一些因为代码逻辑导致的错误,编译器并没有办法找到。例如因为代码逻辑的问题导致两个数组相互引用,都不能释放。

通过Xcode8提供的Runtime Issues新特性,查找到运行过程中出现的问题(紫色的感叹号),并通过Graph的方式将问题可视化的展现给开发者(不会用)

  • Debug Memory Graph 在Xcode6中出现了Debug View Hierarchy新特性,可以通过其调试当前App的视图层级。在Xcode8中苹果为开发者提供了Debug Memory Graph特性(?图片就是),可以直接选择一个对象,查看与其相关的内存关系。Debug Memory Graph和Runtime Issues可以配合使用,通过Debug Memory Graph分析内存关系完成后,点击Runtime Issues可以看到已经发现的内存问题。

结束

转载于:https://juejin.im/post/5a38b08ef265da43310defc7

你可能感兴趣的文章
第三方分享功能
查看>>
Quartz.NET 前一次任务未执行完成时不触发下次的解决方法
查看>>
SQL中的null值
查看>>
python unittest之断言及示例
查看>>
online_judge_1106
查看>>
JAVA_内部类
查看>>
jxl 导入excel
查看>>
Mysql之performance Schema
查看>>
虚拟机linux上网问题
查看>>
XMLHttpRequest - 原始AJAX初步
查看>>
laravel/lumen 单元测试
查看>>
csu2161: 漫漫上学路(Hash+最短路)
查看>>
重复引用错误:duplicate symbols for architecture x86_64
查看>>
计算机图形学 课设
查看>>
ucenter1.5通讯过程分析(转载)
查看>>
js和html5实现画板
查看>>
浏览器中可以访问,但是git命令、go get命令使用时却无法连接
查看>>
Apache Spark源码走读之7 -- Standalone部署方式分析
查看>>
如何避免重构带来的危险
查看>>
有序的双链表
查看>>