我开发了一个 ios 应用程序,该应用程序具有:
NSError *error;
代替:
NSError *error = nil;
当我在模拟器中调试并在连接时在设备上调试时,它运行良好。在我将其存档并将其发送到 TestFlight 进行部署以进行测试的那一刻,我开始在崩溃日志中 收到Unknown Signal错误。
为什么会这样?
发生这种情况是因为您有一个未初始化的指针。只要您幸运,它就不会崩溃,但是使用此类指针是未定义的行为。
为了澄清 dasblinkenlights 的答案,这是声明一个变量:
NSError *error;
...这是声明并分配一个变量
NSError *error = nil;
当您以第一种方式使用它并尝试访问它而不将其设置为某些东西时,它指向的值被称为“垃圾”它是指向其他一些内存堆栈的指针,访问它几乎总是会让你应用程序崩溃。因此,最好的做法是为您的变量分配一个值,如上所述或不久之后。