我开发了一个ios应用程序,它有:
NSError *error;
而不是:
NSError *error = nil;
当我在模拟器中调试和连接时在设备上调试时,它工作得很好。当我将其存档并发送到TestFlight进行测试时,我就开始在崩溃日志中获取未知信号错误。
这一切为什么要发生?
发布于 2012-02-25 14:30:36
这是因为您有一个未初始化的指针。只要运气好,它就不会崩溃,但是使用这些指针的是未定义行为。
发布于 2012-02-25 14:57:39
为了澄清dasblinkenlights的答案,这里声明了一个变量:
NSError *error;
..。这是声明和赋值一个变量
NSError *error = nil;
当你用第一种方式使用它,并且尝试访问它时,它所指向的值被称为“垃圾”--它是指向其他内存堆栈的指针,访问它几乎总是会导致应用程序崩溃。因此,最好的做法是为您的变量指定一个值,如上面所示,或者在此之后不久。
https://stackoverflow.com/questions/9444846
复制相似问题