iphone - 设备中有错误,但模拟器中没有错误

标签 iphone objective-c cocoa-touch

我有这行代码(splits是一个实例变量):

splits = [[NSMutableArray alloc] initWithObjects:[NSMutableArray array]];

这段代码显然是错误的(它应该以 nil 终止),但是它在模拟器中运行良好,即使它在设备上抛出 EXC_BAD_ACCESS 。我的问题是为什么模拟器不抛出错误?

凯尔

最佳答案

实际结果取决于内存内容。模拟器上的内存布局很可能在第一个参数(匿名数组)的地址后面包含一个零。这个零被解释为就好像您用 nil 关闭参数列表并且一切正常。 (P.S. 对于这种情况,有一个名为 NS_REQUIRES_NIL_TERMINATION 的有趣宏,尽管它显然在这里没有帮助。)

关于iphone - 设备中有错误,但模拟器中没有错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/881008/

相关文章:

iphone - Apple 推送通知服务,当设备离线时

iphone - 如果带有文本框的语句不起作用

ios - 以编程方式创建覆盖 iPhone 屏幕前 50% 的 subview

objective-c - 区域与区域的交集 : not working in Sprite Kit

objective-c - Objective C 中可选的参数化 swift 框架方法?

Iphone Objective-c 全局变量不同的值

iphone - 如何从 iPhone 应用程序异步接收数据到 Rails 应用程序?

ios - 使用 NSNotificationCenter 计算应用程序在后台花费的时间

ios - 如何在 TableView 标题中更改 uiview 的高度

ios - 调用 setEnabled 时,UIActionSheet 中的 subview 不会重绘