Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iPhone 2G和3G之间的内存分配_Iphone - Fatal编程技术网

iPhone 2G和3G之间的内存分配

iPhone 2G和3G之间的内存分配,iphone,Iphone,在我为iPhone应用程序构建的一个版本中,我无意中创建了一个变量,该变量在其上方的作用域中隐藏了一个变量。这是无意的,但编译是因为Objective-C显然允许在if块及其包含方法之间隐藏变量 当我发出这段代码时,使用iPhone3GS的人立即遇到了问题,但使用2Gs的人没有任何明显的问题 有人知道这两种型号的操作系统是否存在实际差异吗?2G是否有编译时、静态内存分配 这是一个巨大的困惑点,因为我只有一个2G开发设备,从来没有遇到过问题,即使理论上,代码不应该像预期的那样工作 现在,3Gs使用

在我为iPhone应用程序构建的一个版本中,我无意中创建了一个变量,该变量在其上方的作用域中隐藏了一个变量。这是无意的,但编译是因为Objective-C显然允许在if块及其包含方法之间隐藏变量

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

有人知道这两种型号的操作系统是否存在实际差异吗?2G是否有编译时、静态内存分配

这是一个巨大的困惑点,因为我只有一个2G开发设备,从来没有遇到过问题,即使理论上,代码不应该像预期的那样工作


现在,3Gs使用的是针对临时构建的构建,而2Gs使用的是针对发布的构建,这两个版本之间存在一些其他差异。

不应该有任何差异,它们使用相同的处理器,我相信使用相同的RAM。它们实际上是同一个平台。操作系统是完全一样的——如果你强制它,iphone3g IPSW可以恢复为2G(反之亦然),它会工作得很好(请注意,如果你解压缩IPSW并查看iPhone内部版本,它包含两种平台的NOR文件)


这可能是巧合,因为您的用户可能拥有不同版本的操作系统,也可能是您的特别构建和发布版本之间的差异。

Hmm,谢谢。我意识到操作系统本身是一样的,但这并不意味着底层的内存体系结构做了完全相同的事情。这个问题的产生是因为在阴影的情况下发生了一个奇怪的事件(我知道这是一个错误,直到发布才被发现…)。我想知道我是否应该修改一个静态分析器来寻找阴影或其他东西……苹果公司不允许你注意到任何差异,因此你可能不需要注意。我相信这两个模型的应用程序级处理系统是完全相同的。不同之处一定是构建设置,或者它们运行的是不同的操作系统版本。