IOS 开发调试方法
0.警告
尽量一个警告都不要有
1.错误
1)红色提示
编译过不去的原因大部分是语法,检查括号的匹配,变量名称,作用域范围
2)编译可以通过,可以运行
a。运行过程中程序崩溃
在debug区域的右侧,观察提示信息,信息的最上面会说明出错的类及方法的位置,然后找“reason”单词,看后面的提示
b。运行过程中没有问题,但是结果与期待不符
2.问题的解决方法
2.1 核心理念:掌控每一步中变量的变化
使用debug工具,下断点,逐行跟踪程序的运行,查看每一行代码运行时,各个变量内存放的数据是否与期待存储的数据相一致,如果某一行代码执行后,发现变量中存储的值与期待不符,那么基本上原因就找到了,然后根据变量的整个赋值、运算过程再来分析为什么数据不符,解决了无数据或数据有误的情况后,程序基本就正常运行了。
2.2 下断点位置的选择
变量被改变之前的位置以及变量被改变之后的位置
3 工具的使用
3.1 遇到断点停下来后,debug区域的三角按钮,点击后,程序继续自动运行;如果后续运行中遇到了下一个断点,则停下来;如果后续运行中没有断点了,那么程序自动运行完才停下来
3.2 step over:将一个方法整体作为执行的一步,一次性执行完,但如果方法中有断点,则会进断点。进入断点后,可以通过点击三角号或step out都可以回到进入方法前的那个位置
3.3 step into:可以进入方法的内部,继续逐行跟踪代码的执行过程
3.4 step out:在方法内部中调试时,如果不想再继续跟踪,可以通过点击此按钮,快速回到进入该方法的那个位置
3.5 调试过程中,如果想快速略过一段循环的话,可以在循环的后面添加断点,然后点击三角号,就会不再跟踪循环的过程,而快速执行到下一个断点的位置
IOS 开发调试方法的更多相关文章
- iOS 开发调试技巧
对于软件开发而言,调试是必须学会的技能,重要性不言而喻.对于调试的技能,基本上是可以迁移的,也就是说你以前在其他平台上掌握的很多调试技巧,很多也是可以用在iOS开发中.不同语言.不同IDE.不同平台的 ...
- iOS开发调试技巧总结(持续更新中)
作者:乞力马扎罗的雪 原文 对于软件开发而言,调试是必须学会的技能,重要性不言而喻.对于调试的技能,基本上是可以迁移的,也就是说你以前在其他平台上掌握的很多调试技巧,很多也是可以用在iOS开发中.不 ...
- iOS开发调试概览
概述 我们都知道Xcode默认的调试器是LLDB(在此之前使用的是GDB),但是关于LLDB的debug技巧并非所有人都比较清楚,可能所有人都知道p或者po命令打印一些变量.但是实际的情况时这些还远远 ...
- iOS开发调试Reveal使用
推荐通过Xcode中加断点的方式集成Reveal(小缺陷,当你禁用断点时或者不用Xcode而用Appcode开发时,这个方式是不管用). 打开您的iOS工程,选择 View → Navigators ...
- iOS开发--调试必备 — NSLog
对于程序的开发者来说,拥有一手强大的DEBUG能力,那就好比在武侠世界中拥有一种强大的内功心法一样,走到哪里都是大写的牛B.在我们DEBUG的时候,大部分情况都是要查看我们的调试日志的,这些打印日志可 ...
- iOS开发中方法延迟执行的几种方式
概述 项目开发中经常会用到方法的延时调用,下面列举常用的几种实现方式: 1.performSelector 2.NSTimer 3.NSThread线程的sleep 4.GCD 1.performSe ...
- 浅谈iOS开发中方法延迟执行的几种方式
Method1. performSelector方法 Method2. NSTimer定时器 Method3. NSThread线程的sleep Method4. GCD 公用延迟执行方法 - (vo ...
- iOS开发init方法解析
自定义的init方法,都必须调用父类的init方法. 一般情况下为: - (id)init { [super init]; xxx = xxx; } 通常情况下,这种模式可以满 ...
- iOS开发调试篇—Print Description of "string"
Print Description of "string":把 string 的信息输出到控制台.Copy:复制 string 的信息,包含变量名,类名和值.View Value ...
随机推荐
- iOS8怎么降级到iOS7,苹果iOS8怎么刷回iOS7
iOS8怎么降级到iOS7,苹果iOS8怎么刷回iOS7 http://jingyan.baidu.com/article/e75aca855c5c19142edac6e9.html 威锋APPLE工 ...
- BZOJ4006 JLOI2015 管道连接(斯坦纳树生成森林)
4006: [JLOI2015]管道连接 Time Limit: 30 Sec Memory Limit: 128 MB Description 小铭铭最近进入了某情报部门,该部门正在被如何建立安全的 ...
- hdu Red and Black
算法:深搜 题意:就是让你找到一共可以移动多少次,每次只能移到黑色格子上, Problem Description There is a rectangular room, covered with ...
- 阿铭linux笔记
2015-09-06虚拟机网络设置.wmv: curl 获取在命令行显示的网页 dhclient 分配ip地址 ifdown eth0 关闭网卡eth0 ifup eh0 ...
- python导入matplotlib模块出错
我的系统是linux mint.用新立得软件包安装了numpy和matplotlib.在导入matplotlib.pyplot时出错.说是没有python3-tk包. 于是就在shell中装了一下. ...
- Jasper_passValue_return value from the subreport to main report
create a variable In subreport say returnValue variable class type --> whatever u want calculati ...
- 算法导论--python--插入排序
#!/usr/local/python35/bin/python3.5 #### insert sort if __name__=="__main__": var_list=[3, ...
- [OpenJudge] 百练2754 八皇后
八皇后 Description 会下国际象棋的人都很清楚:皇后可以在横.竖.斜线上不限步数地吃掉其他棋子.如何将8个皇后放在棋盘上(有8 * 8个方格),使它们谁也不能被吃掉!这就是著名的八皇后问题. ...
- nRF51822 SDK初体验
作为两家BLE芯片大厂之一,nordic不像TI那么开放,nordic的开发资料是很难找的. 今天有幸得到nordic的BLE芯片nRF51822的SDK,看了一下. 首先,nordic号称协议栈 ...
- Advanced Bash-Scripting Guide
在UC Berkeley 课程代号CS9E上看到的资源 http://www-inst.eecs.berkeley.edu/~selfpace/studyguide/cs9e/ http://www. ...