Ios 重用CGrect不起作用

Ios 重用CGrect不起作用,ios,xcode4,cgrect,Ios,Xcode4,Cgrect,我有一个奇怪的行为,就是在iPodtouch2G中重用CGRECT,而不是在3G 4G中。 当我在插入设备的情况下从XCode4运行应用程序时,它可以正常工作,但当我归档应用程序并通过itunes或web服务器上传时,会出现奇怪的行为。 如果我去编辑方案,选择存档,然后选择构建配置:调试,通过web服务器上传应用程序,它可以正常工作 我的代码是这样的 //this code works perfect CGRect pos = self.toolBar.frame; pos.origin.y =

我有一个奇怪的行为,就是在iPodtouch2G中重用CGRECT,而不是在3G 4G中。 当我在插入设备的情况下从XCode4运行应用程序时,它可以正常工作,但当我归档应用程序并通过itunes或web服务器上传时,会出现奇怪的行为。 如果我去编辑方案,选择存档,然后选择构建配置:调试,通过web服务器上传应用程序,它可以正常工作

我的代码是这样的

//this code works perfect
CGRect pos = self.toolBar.frame;
pos.origin.y = 0;
self.toolBar.frame = pos;

//this code fails, to fix it I need to create a new CGRect (CGRect pos2)
//or assign an CGRectMake to pos
pos = self.picker.frame;
pos.origin.y = self.toolBar.frame.size.height;
self.picker.frame = pos;
是什么导致了这些问题。如何比较调试版本中的构建配置


编辑

从XCode运行与存档的主要区别在于调试版本与发布版本,尤其是在发布版本中启用的编译器优化

您可能会看到一个与armv6处理器相关的LLVM编译器优化错误,我也遇到过类似的情况。尝试从LLVM切换到GCC编译器。这能解决你的问题吗


此外,如果您升级到XCode 4.5,您会发现ARMV6已被弃用,因此您也可以选择放弃对这些旧设备的支持,与Apple保持同步。

有什么错误?你期待什么?此外,您还缺少一个分号……是否可能self.picker==nil?这会导致奇怪。我猜你在使用por.picker.frame而不是pos.origin.y时犯了一个错误。此外,如前所述,您缺少一个分号。@benzado good suggestion+1-更详细地说,“古怪”被定义为零内存。因此,它的措辞可能更准确,因为这可能会导致意外的结果。好的,谢谢CSmith,changin编译器解决了这个问题。不幸的是,我不能离开旧设备,因为这个应用程序是企业开发的,我希望离开它们,但这不取决于我