XCode 4-IPhone开发-良好的调试教程

XCode 4-IPhone开发-良好的调试教程,iphone,objective-c,debugging,xcode4.3,Iphone,Objective C,Debugging,Xcode4.3,我开始用XCode 4和Objectiv-C开发IPhone。因为我认为掌握一门语言需要很强的调试和IDE知识,所以我正在寻找关于调试过程和XCode的好资源 我最近遇到的一个问题是,在示例代码中抛出了一个unknownException,我不知道如何调试它,因为它在跳入我的主程序后立即崩溃。我认为有了更好的配置,调试就容易多了 我已找到此资源: 但是我在那里找不到与调试相关的东西。。。我错过什么了吗?安迪,这首先是关于超级基本调试: 在这里,您可以找到两个优秀的教程: 安迪,这首先是关于超级

我开始用XCode 4和Objectiv-C开发IPhone。因为我认为掌握一门语言需要很强的调试和IDE知识,所以我正在寻找关于调试过程和XCode的好资源

我最近遇到的一个问题是,在示例代码中抛出了一个unknownException,我不知道如何调试它,因为它在跳入我的主程序后立即崩溃。我认为有了更好的配置,调试就容易多了

我已找到此资源:


但是我在那里找不到与调试相关的东西。。。我错过什么了吗?

安迪,这首先是关于超级基本调试:

在这里,您可以找到两个优秀的教程:


安迪,这首先是关于超级基本调试:

在这里,您可以找到两个优秀的教程:


在客观评价中容易出错

  • 没有将视图附加到视图控制器
  • 向解除分配的实例发送消息。启用NSZombieEnabled
  • 忘记添加框架(例如MapKit)

  • 如果此时无法修复碰撞。在应用程序代理中设置一个断点,然后逐行检查每一行,直到崩溃。向上移动断点,再次运行并检查值。

    在Objective-C中很容易出错

  • 没有将视图附加到视图控制器
  • 向解除分配的实例发送消息。启用NSZombieEnabled
  • 忘记添加框架(例如MapKit)

  • 如果此时无法修复碰撞。在应用程序代理中设置一个断点,然后逐行检查每一行,直到崩溃。移动断点,再次运行,检查值。

    苹果有一个他们认为是iOS最佳调试技巧的列表。 开发者的网站上也有一些视频。我永远也找不到如何建立直接链接,但视频不多,所以只需搜索“调试”:

    去年还有一个:

    访问开发者网站需要注册


    <>你是否应该考虑冒险进入OSX领域,然后是苹果批准的。

    < P>苹果有一个他们认为是最好的iOS调试技巧的列表。 开发者的网站上也有一些视频。我永远也找不到如何建立直接链接,但视频不多,所以只需搜索“调试”:

    去年还有一个:

    访问开发者网站需要注册


    <>你是否应该考虑冒险进入OSX领域,然后是苹果认可的。

    因为你是初学者,调试对你没有多大帮助(嗯,它会,但是,相信我,不是你所期望的那样)。只是尝试编码更准确。我不是新的编码,我是新的XCODEL,ObjaveC(即使我有C++和C背景)…我使用调试来帮助理解我的学习方式(书籍、样本)下的事情是如何工作的,安迪如何在没有获得任何关于代码错误性质的信息的情况下变得更“准确”?@YvesLeBorg,如果你看到“准确编码无错误”和“通过调试和清除bug,没有错误“,你会理解我的立场。@TeodorCarstea:我明白你的意思,但是,我是那种会在百万行代码中出错的开发人员,当这种情况发生时,我必须承认我喜欢我最好的朋友Debugger先生的一点帮助:)因为你是一个初学者,调试对你没有多大帮助(嗯,它会,但是,相信我,不是你所期望的那样)。只是尝试编码更准确。我不是新的编码,我是新的XCODEL,ObjaveC(即使我有C++和C背景)…我使用调试帮助了解事情是如何工作的,我更学者的学习方式(书籍,样本)…Andy如何在不了解代码错误性质的情况下变得更“准确”?@YvesLeBorg,如果你看到“准确编码无错误”和“调试和清除bug无错误”之间的区别,你会理解我的立场。@TeodorCarstea:我明白你的意思,但是,我是那种可以在百万行代码中犯错误的开发人员,当这种情况发生时,我必须承认我喜欢我最好的朋友Debugger先生的一点帮助:)这正是我犯的错误,我删除了样本代码周围的链接,试图了解所有内容是如何构建的。我不知道“NSZombieEnabled”,但这正是我要找的!简单的提示,可以大大提高调试和编码的经验,非常感谢!一直启用NSZombieEnabled是否有缺点?他们为什么不默认启用它?我应该只在我想调试某个东西时才打开它吗?NSZombieEnabled基本上意味着对象没有被释放。它被标记为released,但对象一直保留着,这样当你不小心发送消息时,你得到的不仅仅是对解除分配对象引用的崩溃。这正是我犯的错误,我删除了示例代码周围的链接,试图了解所有内容是如何构建的。我不知道“NSZombieEnabled”,但这正是我要找的!简单的提示,可以大大提高调试和编码的经验,非常感谢!一直启用NSZombieEnabled是否有缺点?他们为什么不默认启用它?我应该只在我想调试某个东西时才打开它吗?NSZombieEnabled基本上意味着对象没有被释放。它被标记为已释放,但对象仍保留在周围,这样当您意外发送消息时,您将获得对解除分配的对象引用的更多崩溃。