在我为iPhone应用构建的一个版本中,我无意中创建了一个变量,该变量在其上方的范围内隐藏了一个变量。这是无意的,但是自Objective-C编译以来,显然允许在if块及其包含方法之间隐藏变量。
当我发出此代码时,使用iPhone 3Gs的人立即遇到问题,但使用2G的人没有任何明显的问题。
有没有人碰巧知道这两个模型是否存在实际操作系统差异? 2G是否有编译时静态内存分配,不知何故?
这是一个巨大的混乱点,因为我只有一个2G开发设备,并且从未遇到过问题,尽管从理论上讲,代码不应该按预期工作。
现在,还存在一些其他差异,即3G使用的是针对AdHoc构建的构建,而2G正在使用的构建目标是发布。
答案 0 :(得分:1)
应该没有任何差异,他们使用相同的处理器,我相信相同的RAM。它们几乎是同一个平台。操作系统实际上是相同的 - 如果你强制它,iPhone 3G IPSW可以恢复到2G(反之亦然)并且它将完美地工作(请注意,如果你解压缩IPSW并查看iPhone内置它包含NOR文件两个平台)。
这可能是巧合,因为您的用户可能拥有不同版本的操作系统,或者它可能是您的临时版本和您的版本之间的差异。