![iOS 8案例开发大全](https://wfqqreader-1252317822.image.myqcloud.com/cover/844/22652844/b_22652844.jpg)
上QQ阅读APP看书,第一时间看更新
实例008 实现断点调试
![](https://epubservercos.yuewen.com/B39025/11229161603800706/epubprivate/OEBPS/Images/figure_0022_0001.jpg?sign=1739610202-mQekbfJ3QKKp0sIBm5WsEfPoMB5dQKdm-0-67526a1f387529efe7711b08ad61023c)
实例说明
在调试iOS项目程序时,最简单的调试方法是通过NSLog打印出程序运行中的结果,然后根据这些结果判断程序运行的流程和结果值是否符合预期。对于简单的项目,通常使用这种方式就足够了。但是,如果开发的是商业项目,它往往非常复杂,需要借助Xcode提供的专门调试工具。所有的编程工具的调试思路都是一样的。首先,开发人员要在代码中设置断点。想象一下,程序的执行是顺序的,可能怀疑某个地方的代码出了问题(引发Bug),那么就在这段代码开始的地方,比如是方法的第一行,或者循环的开始部分,设置一个断点。那么程序在调试时会在运行到断点时中止,接下来可以一行一行地执行代码,判断执行顺序是否是自己预期的,或者变量的值是否和自己想的一样。
具体实现
在Xcode工程中设置断点的方法很简单,比如想对红框表示的行设置断点,就单击该行左侧的红圈位置,如图1-36所示。
![](https://epubservercos.yuewen.com/B39025/11229161603800706/epubprivate/OEBPS/Images/figure_0022_0002.jpg?sign=1739610202-mTFc13HjjuKZWLmOkmqX1CnTkiCEfYqt-0-43d05633a782911c5c4c076b75da2a1c)
图1-36 点击该行左侧红圈位置
单击后会出现断点标志,如图1-37所示。
![](https://epubservercos.yuewen.com/B39025/11229161603800706/epubprivate/OEBPS/Images/figure_0022_0003.jpg?sign=1739610202-3MB2UwCTYCPjeRbPuqSlXo47khjpEQoT-0-905e27cc154b1130bda538110172d06c)
图1-37 出现断点标志
然后运行代码,比如使用“Command+Enter”命令,这时将运行代码,并且停止在断点处,如图1-38所示。
![](https://epubservercos.yuewen.com/B39025/11229161603800706/epubprivate/OEBPS/Images/figure_0023_0001.jpg?sign=1739610202-c7knRQgM6zIb4TTmV9zupDXDPsj3E19e-0-7909eeb0f1711942b98390811e06a335)
图1-38 停止在断点处
可以通过“Shift+Command+Y”命令调出调试对话框,如图1-39所示。
![](https://epubservercos.yuewen.com/B39025/11229161603800706/epubprivate/OEBPS/Images/figure_0023_0002.jpg?sign=1739610202-sw8r30S59NI5yISmfPgyxgeNOQnYHqm4-0-c62ea0602e5233455ba843c50f50b9b8)
图1-39 调试对话框
这和其他语言IDE工具的界面大同小异,因为都具有类似的功能。下面是主要命令的具体说明。
(1)Continue:继续执行程序。
(2)Step over/ Step into/ Step out:用于单步调试,三者的具体说明如下所示。
· Step over:将执行当前方法内的下一个语句。
· Step into:如果当前语句是方法调用,将单步执行当前语句调用方法内部第一行。
· Step out:将跳出当前语句所在方法,到方法外的第一行。