5

我开发了一个 ios 应用程序,该应用程序具有:

NSError *error; 

代替:

NSError *error = nil;  

当我在模拟器中调试并在连接时在设备上调试时,它运行良好。在我将其存档并将其发送到 TestFlight 进行部署以进行测试的那一刻,我开始在崩溃日志中 收到Unknown Signal错误。

为什么会这样?

4

2 回答 2

6

发生这种情况是因为您有一个未初始化的指针。只要您幸运,它就不会崩溃,但是使用此类指针是未定义的行为

于 2012-02-25T14:30:36.957 回答
3

为了澄清 dasblinkenlights 的答案,这是声明一个变量:

NSError *error; 

...这是声明并分配一个变量

NSError *error = nil;  

当您以第一种方式使用它并尝试访问它而不将其设置为某些东西时,它指向的值被称为“垃圾”它是指向其他一些内存堆栈的指针,访问它几乎总是会让你应用程序崩溃。因此,最好的做法是为您的变量分配一个值,如上所述或不久之后。

于 2012-02-25T14:57:39.060 回答