《iOS9开发快速入门》——第2章,第2.4节调试程序
本节书摘来自异步社区《iOS9开发快速入门》一书中的第2章,第2.4节调试程序,作者 刘丽霞 , 邱晓华,更多章节内容可以访问云栖社区“异步社区”公众号查看
2.4 调试程序
iOS9开发快速入门
在iOS 9程序开发中,错误是不可避免的,特别是在使用新的语言或新的开发工具时。遇到了错误就要系统地查找到底是哪里做错了。这种查找程序错误的过程叫做调试。以下主要讲解如何在Xcode 7.0中调试Hello项目的程序。
1.添加断点
调试程序就要使用到Xcode 7.0的调试器。调试器是位于开发者编写的代码和操作系统之间的程序。为程序添加断点后,就启动了调试器,对程序进行调试。断点是调试器应该停止程序的运行的地方,并让开发者进行检查。要添加断点,首先选择想要让程序停止的一行代码,然后选择Degbug|Breakpoints|Add Breakpoint at Current Line命令添加新断点。之后会在添加断点的代码最左边看到一个蓝色箭头,这就是一个新断点,如图2.9所示。
![cf595927ccb92b235d787b1b3faa4dc1bf7429ac](https://yqfile.alicdn.com/cf595927ccb92b235d787b1b3faa4dc1bf7429ac.png)
2.运行程序
单击运行按钮后,程序就会运行。这时运行的程序会停留在断点所在的位置处,并且此代码行会出现绿色的箭头,表示现在程序运行到的位置,如图2.10所示。不仅如此,iOS模拟器也会显示。
![d3b4305d88b404c65548be27e593156485c12ba2](https://yqfile.alicdn.com/d3b4305d88b404c65548be27e593156485c12ba2.png)
3.断点导航
在程序停留下来后,程序调试信息窗口就会出现,里面显示了一些调试信息。在程序调试信息窗口顶端,会出现断点导航,如图2.11所示。
![7e739e5865d5ec9d147f9da8a98bd0bb3a4092e0](https://yqfile.alicdn.com/7e739e5865d5ec9d147f9da8a98bd0bb3a4092e0.png)
Toggle global breakpoint state按钮:选择要查看的线程。
Pause program execution按钮:继续执行当前的代码,如果有下一个断点,就停止在下一个断点上。
Step Over按钮:执行下一行代码。如果当前行是方法调用,则不会进入方法内部。
Step Into按钮:进入方法内部。
Step Out按钮:跳过当前方法,即执行到当前方法的末尾。
这时,单击断点导航中的Continue program execution按钮,继续执行当前的代码。这时,如果程序出现错误就不会跳到下一断点处;如果程序没有问题,就会继续向下执行。现在只有一个断点,单击此按钮,程序会输出最后的结果。
4.删除或废弃断点
如果程序没有问题,那么,就要将程序中设置的断点进行删除或者废弃。删除断点常用的方法有如下三种。
右键单击设置的断点,在弹出的快捷菜单中选择Delete Breakpoint命令。
选中设置断点的行,在Xcode 7.0的菜单栏中选择Debug|Breakpoints|Remove Breakpoint at Current Line命令。
选择断点,将其拖动到别的地方。这时,此断点就进行了删除。
要废弃断点(让断点暂时无法起作用),只要单击断点就可以了。这时,断点就由深蓝色变为了浅蓝色。浅蓝色的断点就说明该断点已被废弃,如图2.12所示。
![566b27746628ace636f127adcb1e3c66ddbdc691](https://yqfile.alicdn.com/566b27746628ace636f127adcb1e3c66ddbdc691.png)
iOS开发:程序打包提示Ignoring file XXX missing required architecture arm7 in file XXX错误 前段时间在开发过程中遇到一个iOS打包报错Ignoring file XXX missing required architecture arm7 in file XXX的问题,然后回想了一下问题所在,是因为集成了ijk播放器插件,然后ijk三方库不支持arm7造成的报错。
异步社区 异步社区(www.epubit.com)是人民邮电出版社旗下IT专业图书旗舰社区,也是国内领先的IT专业图书社区,致力于优质学习内容的出版和分享,实现了纸书电子书的同步上架,于2015年8月上线运营。公众号【异步图书】,每日赠送异步新书。
相关文章
- Web App开发入门
- MarkDown入门指南
- 《微信小程序:开发入门及案例详解》—— 1.2 接入流程
- 《51单片机应用开发从入门到精通》——2.13 软件陷阱实例
- 《iOS 9应用开发入门经典(第7版)》——第2章,第2.1节使用Xcode
- 《Android应用开发从入门到精通》——第2章,第2.1节开发准备工作
- 《Axure RP7网站和APP原型制作从入门到精通(60小时案例版)》一2.2 使用母版
- 《iOS9开发快速入门》——第2章,第2.3节Xcode 7.0项目结构
- 《iOS 8应用开发入门经典(第6版)》——第1章,第1.4节开发技术概述
- 《网站设计 开发 维护 推广 从入门到精通》—— 1.3 网页版面布局设计
- 《HTML5移动应用开发入门经典》—— 2.2 HTML5的新属性
- 《HTML5+CSS3网页设计入门必读》——1.7 XHTML已被废弃:XHTML的语法永存
- 《Android应用开发入门经典(第3版)》——第6.1节创建演示应用
- 《Android应用开发入门经典(第3版)》——第6.6节小结
- 《Android应用开发入门经典(第3版)》——第6.9节练习
- 《jQuery Mobile快速入门》—— 2.6 带有媒体查询的响应式布局
- QT_快速入门
- cesium-webpack 入门开发系列一初探篇(附源码下载)
- Tensorflow2.0 入门与实战学习笔记(十四)-RNN循环卷积网络
- 【数字IC验证快速入门】22、SystemVerilog项目实践之AHB-SRAMC(2)(AHB协议基本要点)
- 【正点原子MP157连载】第五章 STM32基础知识入门-摘自【正点原子】STM32MP1 M4裸机CubeIDE开发指南
- Java小白入门200例65之Java sort()数组排序