我的应用子类 aUITableViewCell
并实现layoutSubviews
修改单元格的contentView
宽度,如下所示:
- (void)layoutSubviews {
[super layoutSubviews];
// position subviews...
CGRect frame = [[self contentView] frame];
frame.size.width -= 20;
[[self contentView] setFrame:frame];
}
使用 iOS 8 模拟器和 Xcode 6 GM 种子运行此代码时,会触发无限循环。但是,当在运行 iOS 8 GM 种子的真实 iPhone 或 iPad 上运行时,它不会像以前的 iOS 版本那样循环。
我首先认为差异是编译器优化,但模拟器在调试配置和发布配置中都会循环。
问题
- 为什么iOS 8 GM和模拟器有区别?
- 这是一个严重的错误修复吗?即使我无法在设备上重现它,我也非常不愿意发布具有潜在严重挂起错误的应用程序。
- 在您看来,什么是重构它以消除循环而不导致 iOS 7 和 6 回归的最佳方法?