xcode开发html5工具,5个Xcode开发调试技巧

606d875bc248d5527a97aafd3d34016c.png

1.Enable NSZombie Objects(开启僵尸对象)

Enable NSZombie Objects可能是整个Xcode开发环境中最有用的调试技巧。这个技巧非常非常容易追踪到重复释放的问题。该技巧会以非常简洁的方式打印指出重复释放的类和该类的内存地址。

怎么开启僵尸对象呢?首先打开“Edit Scheme”(或者通过热键?

668086859393def980ff2251450557ea.png

现在我们可以关掉ARC来测试重复释放的问题、异常和更容易产生的Crashs,但是即使开启ARC,重复释放和与内存相关的Crashs也经常发生。现在假设我们犯了一些错误导致了重复释放的发生来观察将要发生什么。

UIView* view = [[[UIView alloc] init] autorelease];

//...

//do something with view...clearly forgetting that it has been autoreleased.

//

[view release];

现在运行这段代码会发生重复释放的问题,程序将崩溃在主函数,会像下面这样:

1e0ec6a4718950ba76b1a0c60e6d63a8.png

Enable NSZombie Objects会让调试器看起来像这样:

186ac58b6d5917fe0c054d26bd78b987.png

这个例子看起来作用非常小,但是对于一个大工程通过Enable NSZombie Objects打印的信息是非常有用的。

2.对于所有异常添加Global BreakPoint(全局断点)

当你的应用异常或者崩溃的时候Xcode喜欢做的一件事情是直接跳到主函数,就像第一个调试技巧中用到的那个例子一样。如果异常或者崩溃能够停留在异常或者崩溃发生的地方那该是多好呀。幸运的是有一个方法可以做到。Xcode有一个漂亮的功能叫做异常断点,允许我们在异常发生的时候在异常发生的地方放一个断点。你可以指定具体的异常也可以指定所有的异常。

怎样开启异常断点呢?工程切换到异常浏览窗口,点击下方左侧的“Add Breakpoint”按钮,然后选择“Add Exception Breakpoint”确保可以捕获所有异常。

ad40ce4dd33c6cab9d796ede585e47f1.png

现在异常发生时调试器不会直接跳转到主函数了,而是停留在了异常发生的地方。

f131534399862897812751abf20679ca.png

这个断点给了我们一个调试异常非常好的开始的点,不用我们再去遍历代买去找异常发生的地方了。

3.Static Analyzer(静态分析)

Static Analyzer是一个非常好的工具去发现编译器警告不会提示的问题和一些个人的内错泄露和死存储(不会用到的赋了值的变量)错误。这个方法可能大大的提高内存使用和性能,以及提升应用的整体稳定性和代码质量。

怎么打开Static Analyzer?打开Xcide的“Product”菜单,选择Analyzer选项(或者使用热键? shift B)。正像你看到的下面的截图,Static Analyzer会捕获任何应用内的可能的问题然后以蓝色的警告展示出来。

888bf63db7ae49a96202dd354a8d419f.png

我们也可以设置我们的应用在我们编译应用的时候自动开启Static Analyzer,打开项目project文件,设置“Run Static Analyzer”为YES,如下图:

0f3eb4b8bcb1f970a9210ec1430ee97c.png

4.Condational Breakpoints(条件断点)

最后一个调试技巧条件断点,这只是普通的断点,当变量满足一定条件时程序停止。这个调试技巧在当你想要捕获一个循环中的变量的特定值或者一些不常发生的情况时是非常有用的,而不用你每次迭代都停止来查看。

怎样开启条件变量?只不过是添加一个普通断点,然后右键点击断点选择“Edit Breakpoint”,这时就打开了一个断点编辑器,你可以在这里设置断点条件(以及一些其他的断点设置),然后选择“Done”,这个调试技巧非常简单吧。

f6898ae8d6c1114549e59dad9a297d8b.png

5.unrecognized selector send to instancd 快速定位

在Debug菜单中Breakpoints->Create Symbolic Breakpoint

f028b292d323144f86dce258c0e22308.png

在Symbolic中填写如下方法签名

-[NSObject(NSObject) doesNotRecognizeSelector:]

7f7928afcb78ed480eda2e1fe11f0643.png

设置完成后再遇到类似的错误就会定位到具体的代码。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/572649.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

求1-n之内的素数

#include<stdio.h>#include<math.h>int main(){ int n,i,j,k; scanf("%d",&n); //输入范围n for(i2;i<n;i) { ksqrt(i); for(j2;j<sqrt(i);j) { if(i%j0){ //如果i…

计算机基础和操作系统基础知识测试,计算机基础知识和操作系统.doc

全国计算机等级考试精讲精解精练——二级C第1章 计算机基础知识与操作系统 PAGE 2 PAGE 33技术资料共享知识第1章计算机基础知识与操作系统大纲要求了解计算机的有关概念及软硬件系统的组成&#xff1b;了解数据基本单位&#xff0c;掌握计算机常用数制的转换方法&#xff1b;具…

Unity 协程深入解析与原理

先来直接放一段代码 1 using System.Collections;2 using System.Collections.Generic;3 using UnityEngine;4 5 public class CoroutineTest : MonoBehaviour6 {7 8 void Start()9 { 10 Debug.Log("Start Begin"); 11 12 CustomCoroutine …

计算机操作员初级 第1单元0202微型计算机基本操作 教学大纲,计算机操作员教学大纲...

计算机操作员培训教学大纲一、课程的地位、目的与任务计算机应用基础课程是计算机操作员必修课。通过学习&#xff0c;测试学员的计算机基础知识&#xff0c;基本操作和使用计算机的能力&#xff1b;它是学员学习计算机的入门课程&#xff0c;提高学员的综合学习的能力。二、教…

晓庄学院计算机科学分数,南京晓庄学院计算机单招分数

技校网专门为您推荐的类似问题答案问题1&#xff1a;南京晓庄学院的计算机专业晓庄排名太低计算机实力也弱 你的分这么高 上了浪费 建议上南京林业大学或其它符合等级的外省一流学校问题2&#xff1a;有南京晓庄学院 行知学院 计算机专业的学生吗, 这个学校如何你好啊&#xff…

NAT协议详解

NAT&#xff08;Network Address Translation&#xff0c;网络地址转换&#xff09;是将IP数据报头中的IP地址转换为另一个IP地址的过程。在实际应用中&#xff0c;NAT主要用于实现私有网络访问公共网络的功能。这种通过使用少量的公网IP地址代表较多的私网IP地址的方式&#x…

[Design-Pattern]工厂模式

Java版本 1 package interfaces;2 3 interface Service {4 void method1();5 void method2();6 } 7 8 interface ServiceFactory { 9 Service getService(); 10 } 11 12 class Implementation1 implements Service { 13 Implementation1() {} 14 public void method1…

计算机应用基础文字处理软件应用职高PPT,《计算机应用基础》职高2010修订版_教(学)案...

《计算机应用基础》职高2010修订版_教(学)案 (93页)本资源提供全文预览&#xff0c;点击全文预览即可全文预览,如果喜欢文档就下载吧&#xff0c;查找使用更方便哦&#xff01;39.9 积分&#xfeff;. .《计算机应用基础》职高2010修订版 教案第一章 计算机基础知识第二章 中文…

快速排序【记录一下代码】

本文仅用作学习记录&#xff0c;大神勿喷O(∩_∩)O~ 代码一、百度百科C语言版本代码,参考数据结构p274(清华大学出版社&#xff0c;严蔚敏) 1 void Qsort1(int a[], int low, int high)//百度百科C语言版本代码 2 {/*参考数据结构p274(清华大学出版社&#xff0c;严蔚敏)*/3 …

计算机图学测试题及答案,《计算机图形学》练习测试题及参考答案

A 29、下列有关平面几何投影的叙述语句中&#xff0c;正确的论述为( ) A) 在平面几何投影中&#xff0c;若投影中心移到距离投影面无穷远处&#xff0c;则成为平行投影&#xff1b; B) 透视投影与平行投影相比&#xff0c;视觉效果更有真实感&#xff0c;而且能真实地反映物体的…

eclipse 修改java代码不重启服务器 生效配置

1.本文目的&#xff1a;用tomcat进行web开发时&#xff0c;修改Java代码往往要重启代码&#xff0c;当工程较大启动较慢时&#xff0c;严重影响效率&#xff0c;本文通过eclipse下tomcat开发和发布web程序时&#xff0c;对一些Java代码一般修改&#xff08;不是增减方法、变量&…

多媒体微型计算机必不可少的硬件,第1章计算机基础知识习题材料.doc

第三部分 习 题第1章1计算机基础知识一、单项选择题1&#xff0e;通常人们普遍使用的电子计算机是( )。A&#xff0e;数字电子计算机B&#xff0e;模拟电子计算机C&#xff0e;数字模拟混合电子计算机D&#xff0e;以上都不对2&#xff0e;世界上第一台电子计算机研制成功的时间…

Shell第二篇:正则表达式和文本处理工具

一 什么是正则 正则就是用一些具有特殊含义的符号组合到一起&#xff08;称为正则表达式&#xff09;来描述字符或者字符串的方法。或者说&#xff1a;正则就是用来描述一类事物的规则。 生活中处处都是正则&#xff1a; 比如我们描述&#xff1a;4条腿 你可能会想到的是四条腿…

计算机二级办公软件高级应用难不难,计算机二级office难吗 考试内容是什么

相信很多的在校大学生或者已经开始工作的小伙伴都会有考虑过要考国二MsOffice高级应用考试&#xff0c;那么&#xff0c;计算机二级office难吗&#xff1f;考试内容是什么&#xff1f;计算机二级office难吗许多考生基础差&#xff0c;考生缺乏备考计划&#xff0c;超过70%的考生…

vue.js指令v-model实现方法

原文链接&#xff1a;http://www.jb51.net/article/99097.htm V-MODEL 是VUE 的一个指令&#xff0c;在input 控件上使用时&#xff0c;可以实现双向绑定。 通过看文档&#xff0c;发现他不过是一个语法糖。 实际是通过下面的代码来实现的&#xff1a; <% page language&quo…

山西财大华商学院计算机系,山西财经大学华商学院

山西财经大学华商学院&#xff0c;位于山西省太原市&#xff0c;是经国家教育部正式批准设立&#xff0c;由山西财经大学在2002年举办的一所全日制本科院校&#xff0c;学院紧邻山西财经大学主校区&#xff0c;目前在校学生4500余人。山西财经大学是新中国成立后建校最早的财经…

sed 解释正则表达式

以/etc/passwd文件为模板 1&#xff0c;删除文件每行的第一个字符。 2&#xff0c;删除文件每行的第二个字符。 3&#xff0c;删除文件每行的最后一个字符。 4&#xff0c;删除文件每行的倒数第二个字符。 5&#xff0c;删除文件每行的第二个单词。 转载于:https://www.cnblogs…

计算机usb无法读取u盘启动,U盘中毒后造成U盘启动盘制作失败usb无法识别的解决办法...

我们想用U盘作为装系统的工具&#xff0c;必须先保证U盘的安全才能作为U盘启动盘使用&#xff0c;如果U盘一旦损坏&#xff0c;将造成USB无法识别&#xff0c;装系统也就无从下手&#xff0c;下面先讲下U盘中毒后造成U盘损坏usb无法识别的情况&#xff1a;1、识别U盘速度变得缓…

在windows下codeblocks中配置pthread库

转自&#xff1a;http://blog.csdn.net/u013172314/article/details/50846198 如果添加方法不正确&#xff0c;可能会出现pthread_create’未定义的引用&#xff0c;所以下面我讲一下正确的配置方法。 首先介绍一下我的安装平台和需要下载的工具包&#xff1a; win7 64位&#…

吕帅 计算机学院,刘磊-吉林大学计算机科学与技术学院

在《Journal of Systems and Software》、《Pattern Recognition》、《计算机学报》、《软件学报》等国内外期刊和会议上累计发表学术论文180余篇&#xff0c;其中&#xff1a;SCI检索论文40余篇、EI检索论文100余篇。主要代表性学术论文(SCI检索学术论文、国内权威期刊论文)&a…