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 ...
随机推荐
- Linux中的常见配置文件
网络服务端口 /etc/services
- C#将十六进制的文本转换到整型数据
1 length1 = Int32.Parse(szLine.Substring(1, 2), System.Globalization.NumberStyles.HexNumber);//计算这一行 ...
- Java系列--第二篇 基于Maven的Android开发HelloAndroidWorld
曾经写过一篇Android环境配置的随笔,个人感觉特繁琐,既然有Maven,何不尝试用用Maven呢,经网上搜索这篇文章但不限于这些,而做了一个基于Maven的Android版的Hello Andro ...
- :before与:after伪类的应用
1.小三角样式
- Liqn基础
Linq:语言集成查询 (LINQ) 是 Visual Studio 2008 中引入的一组功能,可为 C# 和 Visual Basic 语言语法提供强大的查询功能. LINQ 引入了标准易学的数据 ...
- The Suspects(POJ 1611 并查集)
The Suspects Time Limit: 1000MS Memory Limit: 20000K Total Submissions: 30158 Accepted: 14665 De ...
- MySQL脚本
一. move.sql use items set @endTime=(select DATE_SUB(now(),INTERVAL 3 MONTH)); REPLACE INTO new_items ...
- RBL, UBL, Uboot的关系
RBL, UBL, Uboot的关系 1)RBL=ROM Bootloader,UBL=user Bootloader. 2)RBL为TI固化在芯片ROM中的bootloader,OMAP上电启动过后 ...
- tmux 配置
tmux配置文件名为.tmux.conf,位于用户根目录下. 常用的配置为: # vimsetw -g mode-keys vibind [ copy-modebind -t vi-copy v be ...
- 瑞柏匡丞:app商业价值如何体现
在互联网行业,想要实现商业价值,必须先实现用户价值.这个观点发源自PC统治互联网的时代,如今PC端的用户停留时间下降,用户行为趋于稳定保守,移动端则蒸蒸日上.而PC与移动端的区别之一是,PC端的用户流 ...