Xcode(7.2) 使用技巧(3)
2016-03-09 19:04
330 查看
1、让XCode反馈足够多的信息
在Edit–>Scheme里面 找到Arguments ,在Environment Variables这里添加
把下面2个值设置成YES
NSAutoreleaseFreedObjectCheckEnabled
NSDebugEnabled
这种方法非常好用,建议在建立一个工程的时候,加入此设置
2. 让 NSLog 打印出 足够的信息
//A better version of NSLog
#define NSLog(format, ...) do { \
fprintf(stderr,"<%s : %d> %s\n", \
[[[NSString stringWithUTF8String:__FILE__] lastPathComponent] UTF8String], \
__LINE__, __func__); \
(NSLog)((format), ##__VA_ARGS__); \
fprintf(stderr,"-------\n"); \
} while (0)
这是 把 系统的 NSLog 替换成这个宏了,你也可以 把这个宏 的名字 改改
这个 宏 可以打印出 类名 方法名 行号 ,和你要打印的信息,再也不用担心,无数的打印,而找不到 打印的地方了,----
使用Objetcive语言(强类型)并且用NSLog打印的时候,常常搞不清楚NSLog(@“%?”,xxx) 这种类型该是什么什么类型输出,应该是%d呢还是%@亦或是%f???根本分不清楚吗~,所以玩转NSLog你应该要知道以下这几个全局方法!
3. 调试过程中 动态的 改变 变量的值 :使用expr命令
可以在调试时动态执行指定表达式,并将结果打印出来。常用于在调试过程中修改变量的值。
如图设置断点,然后运行程序。程序中断后输入下面的命令:
expr a=2
你会看到如下的输出:
(int) $0 = 2
继续运行程序,程序输出的信息是:
实际值:2
很明显可以看出,变量a的值被改变。 除此之外,还可以使用这个命令新声明一个变量对象,如:
expr int $b=2
p $b
LLDB调试命令初探:http://www.starfelix.com/blog/2014/03/17/lldbdiao-shi-ming-ling-chu-tan/
在Edit–>Scheme里面 找到Arguments ,在Environment Variables这里添加
把下面2个值设置成YES
NSAutoreleaseFreedObjectCheckEnabled
NSDebugEnabled
这种方法非常好用,建议在建立一个工程的时候,加入此设置
2. 让 NSLog 打印出 足够的信息
//A better version of NSLog
#define NSLog(format, ...) do { \
fprintf(stderr,"<%s : %d> %s\n", \
[[[NSString stringWithUTF8String:__FILE__] lastPathComponent] UTF8String], \
__LINE__, __func__); \
(NSLog)((format), ##__VA_ARGS__); \
fprintf(stderr,"-------\n"); \
} while (0)
这是 把 系统的 NSLog 替换成这个宏了,你也可以 把这个宏 的名字 改改
这个 宏 可以打印出 类名 方法名 行号 ,和你要打印的信息,再也不用担心,无数的打印,而找不到 打印的地方了,----
使用Objetcive语言(强类型)并且用NSLog打印的时候,常常搞不清楚NSLog(@“%?”,xxx) 这种类型该是什么什么类型输出,应该是%d呢还是%@亦或是%f???根本分不清楚吗~,所以玩转NSLog你应该要知道以下这几个全局方法!
3. 调试过程中 动态的 改变 变量的值 :使用expr命令
可以在调试时动态执行指定表达式,并将结果打印出来。常用于在调试过程中修改变量的值。
如图设置断点,然后运行程序。程序中断后输入下面的命令:
expr a=2
你会看到如下的输出:
(int) $0 = 2
继续运行程序,程序输出的信息是:
实际值:2
很明显可以看出,变量a的值被改变。 除此之外,还可以使用这个命令新声明一个变量对象,如:
expr int $b=2
p $b
LLDB调试命令初探:http://www.starfelix.com/blog/2014/03/17/lldbdiao-shi-ming-ling-chu-tan/
相关文章推荐
- 第一次以程序员身份进入一家公司
- 深入理解C++中public、protected及private用法
- 2016.3.7第一次作业
- Crossword Answer UVa232
- 3月7日薛老师讲义
- Android沉浸式状态栏
- 九宫格程序代码 共享并希望大家多提意见
- 《算法竞赛入门经典》5.22阶乘的精确值
- CodeForces 630K: Indivisibility【容斥】
- 挑竹签
- Java多线程学习(九)
- JS总结
- Codeforces #345 div1 A. Watchmen 数学
- poj2362 Square DFS剪枝
- BZOJ_P1228 [SDOI2009]E&D(博弈+SG函数+打表)
- BZOJ1711Dingin吃饭
- 魔方阵
- Android项目使用Ant多渠道打包(最新sdk)
- C++中this指针的用法详解 http://blog.chinaunix.net/uid-21411227-id-1826942.html
- yii2扩展yii2-imagine遇到的问题