【发布时间】:2011-10-12 11:45:23
【问题描述】:
我不知道如何解释这一点。我昨天向商店提交了我的一个应用程序的更新。 第一个屏幕截图是一个特定屏幕的显示方式运行在我的 iPhone 3G 上,运行 iOS 4.2.1,从 App Store 下载:
下面的第二张图片是完全相同的代码,自原始提交以来没有进行任何更改,运行在通过 Xcode 连接的完全相同的设备上。 p>
应用程序运行良好在我的 iPhone 4 上,运行 iOS 5,从 App Store 下载。回顾一下:
- 从 App Store 获得的应用在 iPhone 3G 上有缺陷
- 从 App Store 获得的应用在 iPhone 4 上良好
- 通过 Xcode 绑定的应用在 iPhone 3G 上良好
这些不是唯一的图形不一致,但它们都与自定义 UITableViewCell 代码有关,该代码除了在每个目录中推送几个像素的标签之外没有做任何事情,并且从第一天起就一直运行良好。我已经向 idp-dts 提交了一份报告,正在等待他们的回复,但由于等待名单通常是一周或更长时间,我宁愿自己解决这个问题。
任何帮助/提示/猜测将不胜感激!
iPhone 3G 运行我的应用程序的 App Store 版本:
iPhone 3G 运行我的应用程序的 Xcode 绑定版本:
编辑:这听起来与这个问题非常相似:Building with LLVM and any optimization causes app to crash on startup 联系我的客户使用的是第二代 iPod Touch,这是除 iPhone 3G 之外唯一使用 armv6 的硬件。
编辑 2: 这是设置左侧颜色条边界的 sn-p 代码。代码中似乎没有任何可疑之处:
- (void)layoutSubviews {
CGRect colorViewFrame = self.bounds;
colorViewFrame.size.width = 6;
colorViewFrame.origin.y += 3;
colorViewFrame.origin.x -= 1;
colorViewFrame.size.height -= 8;
colorView.frame = colorViewFrame;
...
}
【问题讨论】:
-
您的应用是针对哪个版本的 SDK 构建的?
-
iOS 5(GM 种子)是 Base SDK,而部署目标留在 iOS 4.0
-
你说这是更新。是否可以使用保存在应用程序包之外的数据来计算偏移量?如果您删除应用并重新下载会怎样?
-
删除并重新下载给我留下了拙劣的版本。所有的帧都是在 [UITableViewCell layoutSubviews] 内部动态计算的;方法,所以没有任何东西保存在外面。
-
我该死的……你知道吗?我决定查看应用程序的构建设置,比较调试和发布方案之间的差异。一个区别是 LLVM 编译器优化级别。 Debug 设置为“None”,Release 设置为“Fastest, Smallest”。我将其更改为“最快、最小”以进行调试,现在可以在模拟器中重现。确定这是一个错误?我不想将未优化的代码提交到 App Store,但如果优化我的代码正在改变它的行为...... ??
标签: iphone objective-c ios cocoa-touch uitableview