iOS应用程序错误及其导致应用程序崩溃

时间:2014-05-07 12:33:45

标签: ios objective-c ios7

运行我的应用程序进行测试时出现此错误:

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[__NSPlaceholderArray initWithObjects:count:]: attempt to insert nil object from objects[0]'
*** First throw call stack:
(0x30d48fd3 0x3b5c1ccf 0x30c82a8b 0x30c8c391 0x1038ab 0x335d45a7 0x335d3efb 0x335ce58b 0x3356a709 0x33569871 0x335cdcc9 0x35bd6aed 0x35bd66d7 0x30d13ab7 0x30d13a53 0x30d12227 0x30c7cf0f 0x30c7ccf3 0x335ccef1 0x335c816d 0x1053c1 0x3baceab7)
libc++abi.dylib: terminating with uncaught exception of type NSException

导致应用崩溃

3 个答案:

答案 0 :(得分:1)

如果没有更多的背景,那么很难给出一个好的答案。也就是说,将一个nil对象插入NSArray类型的类(包括NSMutableArray)将导致抛出异常。如果你需要一个"空"数组中的值,使用[NSNull null]

要调试它,请尝试在Xcode中启用异常断点。以下是:

  1. 在左侧面板上,选择右侧的第二个图标。那是断点面板。
  2. 在底角,有一点加号。点击它。
  3. 在菜单中,选择"添加例外断点"
  4. 运行您的代码。当它崩溃时,它会向您显示崩溃的行以及堆栈跟踪。
  5. enter image description here

答案 1 :(得分:0)

您正在尝试插入一个nil对象。如果要添加nill对象,则应添加如下。您无法直接添加

  

[array addObject:[NSNull null]];

答案 2 :(得分:0)

您无法将nil添加到数组中(因为它包含指向对象的指针),因此它会崩溃。如果你需要在NSArray中存储nil,请使用NSNull,它只需将nil包装成数组。