- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
在我的应用程序的临时测试版中,我在某些设备上获得了 EXC_BAD_ACCESS,请参见此处: Help debugging iPhone app - EXC_BAD_ACCESS
我已经设法使用 atos -arch armv6 -o myapp.app/myapp 0x000037a6 在终端中追踪导致此问题的方法,它引导我找到这段代码:
for (UIView *view in scrollView.subviews) {
[view removeFromSuperview];
}
我怀疑该应用程序收到了内存访问警告,并释放了它的子项 scrollview 或 UIImageViews,因此当我使用上述方法时,它会遇到错误(并崩溃),因为它过度释放了 View 。
我的问题是,我怎样才能使它安全,以便它只在尚未发布时才发布?
最佳答案
您在迭代数组时正在修改它。它很微妙,但是因为 removeFromSuperview
将它从 subview 列表中删除,所以您正在更改数组。将您的代码更改为此,
NSArray *subviews = [scrollView.subviews copy];
for (UIView *view in subviews) {
[view removeFromSuperview];
}
[subviews release];
你应该没问题。
关于objective-c - 在这里过度释放?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2024654/
我正在开发适用于 Wordpress 的 PSD,并面临着根据颜色过度对齐背景图像或相反的问题。 在桌面上一切都很好,但在移动设备上背景图像变小了(我使用了 background-size: 100%
在标准 Modelica 流体流量源中,通常指定流量或压力。例如,以下边界设置(P 表示压力边界,F 表示流量边界)通常会围绕管道组件: P - 管道 - P F - 管道 - P 但是,有时在同一侧
我正处于设计基于 Azure 的应用程序的早期阶段。考虑到我可能预期的需求的变化性,Azure 吸引我的地方之一是它的可扩展性。因此,我试图保持事物松散耦合,以便我可以在需要时添加实例。 我看到的关于
我与 Xcode 4 dot notation code sense problem 正好相反!点符号的代码完成不仅显示属性,还显示我的方法(在每个完成的左侧标记 P 或 M 分别指示它是属性还是方法
我是一名优秀的程序员,十分优秀!