【问题标题】:[__NSArrayM insertObject:atIndex:]: object cannot be nil - how determine where is the error?[__NSArrayM insertObject:atIndex:]: object cannot be nil - 如何确定错误在哪里?
【发布时间】:2012-12-05 10:55:50
【问题描述】:

我有一个带有异步事件的大项目,有时我有错误 [__NSArrayM insertObject:atIndex:]: 对象不能为nil, 但我不知道在哪里抛出这个错误。我怎样才能捕捉到这个错误?我在进行操作 insertobject:atIndex 的任何地方都进行断言。

这是堆栈:

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '***    -[__NSArrayM insertObject:atIndex:]: object cannot be nil'


*** First throw call stack:

(0x34c352a3 0x32f4597f 0x34b7f8d9 0xc48db 0xc3ced 0xc3b41 0x1178d9 0x148aed 0x103cfd    0x102fc9 0x101f95 0x35f25595 0x35f7a13b 0x35f7a081 0x35f79f65 0x35f79e89 0x35f795c9 0x35f794b1 0x35f67b93 0x35f67833 0xd820b 0x35fc8275 0x3604aea9 0x326efa6f 0x34c0a5df 0x34c0a291 0x34c08f01 0x34b7bebd 0x34b7bd49 0x350b82eb 0x35f5a301 0x62e45 0x62de0)

libc++abi.dylib: terminate called throwing an exception

【问题讨论】:

  • 异常发生时获取回溯,会有帮助的。

标签: objective-c ios nsarray null nserror


【解决方案1】:

认为您需要处理来自 Array 的 null 值。 它为我工作 类似:

if ( array ! = nil ) {
    NSLog(@"name is nil");
} else {
    // addobject to array 
}

【讨论】:

    【解决方案2】:

    有时如果你找不到它抛出的异常。只需尝试在您的项目中添加这些symbolic breakpoints。然后运行

    objc_exception_throw malloc_error_break [NSException 引发]

    在您的Xcode 中转到Product -> Debug -> Create Symbolic Breakpoint。在Symbol 中输入上面提到的每个断点,然后按Done,或者您也可以通过转到左下角的Breakpoint navigator (cmd + 6) 来创建+ 符号,单击+,然后单击Add symbolic breakpoint。现在尝试运行,它会将您带到崩溃的特定行。

    【讨论】:

    • 这有助于追踪一个常规异常断点无法找到的异常。
    【解决方案3】:

    检查代码崩溃位置的好方法是:

    1) 转到 Xcode 中的断点选项卡。

    2) 点击底部的“+”按钮。

    3) 添加异常断点

    a) 在中断选项卡中选择两者:

      i) on Throw 
    
      ii) on Catch 
    

    并构建和 r 联合国。

    4) 这些断点会告诉您应用在 90% 的情况下发生崩溃的确切位置。

    希望这对您有所帮助。 :)

    【讨论】:

    • 忘记了这些,偶然发现了这个答案,非常感谢
    • 这应该是标准的 xcode 行为。谢谢苹果。谢谢。迪维亚。
    【解决方案4】:

    显然,您插入的对象不应为 nil。检查一下!

    【讨论】:

    • OP 想知道一种技术来定位发生这种情况的哪里,而不是为什么
    • 这不是有助于解决此问题的有效答案
    猜你喜欢
    • 2023-04-05
    • 2022-07-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多