gpt4 book ai didi

iphone - 调试/发布版本之间的 iOS 精度差异会扰乱 View 吗?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:08:36 25 4
gpt4 key购买 nike

我有一些代码试图修改一个 CGRect 的属性,并使用这个新框架设置另一个 CGRect:

actView         = [[[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray ] autorelease];
actView.hidesWhenStopped = NO;
[actView startAnimating];
frame = actView.frame;
frame.origin.x = mainLabel.frame.origin.x - frame.size.width - TBLCELLPADDING;
frame.origin.y = mainLabel.frame.origin.y;
actView.tag = TBLCELLACTTAG;
actView.frame = frame;
[cell.contentView addSubview:actView];

这在新 iPhone 的调试版本和发布版本中运行良好。然而,在 3G iPhone 的发布版本上运行会产生一些疯狂的结果并扰乱 View 。

预期结果(适用于较新的手机):

2012-01-01 14:41:43:449 myapp [691:775] Loading MainLabel: 122.000000 26.000000
2012-01-01 14:41:43:605 myapp[691:775] Loading Frame: 97.000000 26.000000
2012-01-01 14:41:43:713 myapp[691:775] Loading ActView: 97.000000 26.000000

运行 4.2 固件和 Release Build 的 iPhone 3G 的结果(这发生在任何固件上):

2012-01-01 14:43:39:516 myapp[706:775] Loading MainLabel: 122.000000 26.000000
2012-01-01 14:43:39:589 myapp[706:775] Loading Frame: 26.000000 26.000000
2012-01-01 14:43:39:792 myapp[706:775] Loading ActView: 26.000000 0.000000

这搞砸了我的旧版 iPhone 应用程序的所有 View 。
有没有一种方法我应该专门用代码来处理这个问题?或者我应该修改旧版 iPhone 的build设置中的某些内容吗?

最佳答案

由于该问题仅存在于基于 ARMV6 的设备上,并且仅在构建优化代码时存在,因此可能是由于 llvm 的错误 ARMV6 优化所致。

将以下内容添加到您的build设置中作为用户定义的设置:

GCC_THUMB_SUPPORT = NO

它应该是这样的: enter image description here

这样做的目的是,它完全禁用了为您的应用构建的拇指指令集。如果这导致 App 正常运行,请检查 App 在 ARMV7 设备上是否仍然正常运行,因为此设置可能会严重影响性能。

尽管这似乎是 GCC 特定的设置,但 LLVM 仍然尊重它,并在我需要更新的一些旧项目中挽救了我的落后。

关于iphone - 调试/发布版本之间的 iOS 精度差异会扰乱 View 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8696102/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com