2009-05-28 40 views
0

在我的一个iPhone应用程序版本中,我无意中创建了一个变量,在上面的范围中映射了一个变量。这是无意的,但是由于Objective-C显然允许在if块及其包含方法之间隐藏变量,因此编译它。iPhone 2G和3G之间的内存分配

当我发出这段代码时,使用iPhone 3G的人立即遇到了问题,但使用2G的人没有任何明显的问题。

有没有人碰巧知道这两个模型是否存在实际的操作系统差异? 2G有编译时间,静态内存分配,不知何故?

这是一个巨大的混乱点,因为我只有一个2G开发设备,并且从来没遇到过问题,即使理论上代码不应该按预期工作。

现在,还有一些其他的区别在于,3G使用的是构建AdHoc构建版本,而2G使用的版本是针对版本的。

回答

1

应该没有什么区别,它们使用相同的处理器,我相信相同的RAM。他们几乎是同一个平台。操作系统是字面上相同的 - 如果你强制它,一个iPhone 3G IPSW可以恢复到2G(反之亦然),它会很好地工作(请注意,如果你解压IPSW,看看里面的iPhone建立它包含NOR文件两个平台)。

这可能是巧合,因为你的用户可能有不同版本的操作系统,或者它可能是你的专用版本和你的版本之间的差异。

+0

嗯,谢谢。我意识到操作系统本身是相同的,但这并不意味着底层内存架构完全一样。这个问题是因为在Shadowing的情况下发生了一个奇怪的事件(我知道这是一个错误,直到发布才被捕获)。我想知道如果我应该修改一个静态分析器来寻找阴影或其他东西... – Sam 2009-06-10 17:49:48