首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >NSError *error;vs NSError *error =0;

NSError *error;vs NSError *error =0;
EN

Stack Overflow用户
提问于 2012-02-25 14:28:30
回答 2查看 2.4K关注 0票数 5

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

代码语言:javascript
运行
复制
NSError *error; 

而不是:

代码语言:javascript
运行
复制
NSError *error = nil;  

当我在模拟器中调试和连接时在设备上调试时,它工作得很好。当我将其存档并发送到TestFlight进行测试时,我就开始在崩溃日志中获取未知信号错误。

这一切为什么要发生?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-02-25 14:30:36

这是因为您有一个未初始化的指针。只要运气好,它就不会崩溃,但是使用这些指针的是未定义行为

票数 6
EN

Stack Overflow用户

发布于 2012-02-25 14:57:39

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

代码语言:javascript
运行
复制
NSError *error; 

..。这是声明和赋值一个变量

代码语言:javascript
运行
复制
NSError *error = nil;  

当你用第一种方式使用它,并且尝试访问它时,它所指向的值被称为“垃圾”--它是指向其他内存堆栈的指针,访问它几乎总是会导致应用程序崩溃。因此,最好的做法是为您的变量指定一个值,如上面所示,或者在此之后不久。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9444846

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档