Objective C一般故障排除过程

时间:2014-06-24 18:20:08

标签: objective-c xcode macos cocoa oop

我有两周的时间学习Objective-C(但之前的Java和Python经验),在最初的障碍之后,我开始掌握像指针,ARC和代表这样的东西。然而,在不止一次的情况下,我遇到了一个问题/错误,我不知道如何解决,更糟糕的是,我不知道如何处理解决方案。

我的常规故障排除策略,当事情没有按预期工作时,如下:

  1. 重读我的代码的相关部分,以确保一般逻辑和流程有意义
  2. 查看任何自定义方法并确保它们正常工作
  3. 在代码中放入一些NSLog语句,以查看它在做出意想不到的事情
  4. 一旦我发现了麻烦的部分,请搜索​​apple docs / stackoverflow / google以查看是否有人遇到过同样的问题。
  5. 我可能会省略一个步骤,但这个一般过程大部分都有效。但是,我遇到的一些问题,这个过程不起作用,我完全陷入困境。几个例子:

    • 我试图使用在适当位置调用的正确方法加载NSWindowController,但它没有显示。经过漫长的漫无目的的实验后,原来是指针问题
    • 我正在测试直接从Apple Technical Q&A拉出的示例,以创建一个可点击的超链接到NSAttributedString,但是当您将鼠标悬停在所述链接上时,指针手形光标不会出现。有关详细信息,请参阅my thread
    • 我创建了一个NSButton,并希望当我将鼠标悬停在按钮上时会出现指向手形光标。我在接受的答案here中使用了代码,但它不起作用,我不知道为什么。另外,对我想要使用的每个按钮进行子类化将是单调乏味的。

    显然,我的故障排除策略无效。一旦我耗尽了所有4个步骤都无济于事,我不得不尝试随机修复,直到一个看似神奇的工作。这既不是时间效率也不是帮助我更好地理解语言。是否有我可以添加到我的故障排除策略中的步骤,如果有,它们是什么?

    例如,当我向朋友询问相同的问题时,他们建议使用断点来监控实例变量和对象。

1 个答案:

答案 0 :(得分:0)

当你遇到错误时,

  1. 您需要做的第一件事是阅读错误,查看错误是什么以及错误发生的位置。
  2. 转到错误的具体位置,查看是否存在明显错误。
  3. 如果没有,请在怀疑位置设置断点,然后逐步检查并逐步检查堆栈上的每个值是否符合预期。
  4. 您可能想要进行一些测试,考虑所有可能性,例如,如果此值为空,如果它为0,等等。
  5. 有时错误很棘手,但是每次看到错误时都不建议再次读取代码。