2

自从我开始 iPhone/iPod 开发以来,我遇到了模拟器和真实设备的反应方式之间的一些差异。也许我会遇到一些其他的差异,我也必须弄清楚,也许其他人还没有在这里遇到这些问题(YET)并且可以从知识中受益,也许你知道一些你本来会遇到的问题/差异很高兴在您花费数小时或数天时间弄清楚到底发生了什么之前早点知道。

所以这就是我遇到的。

  1. 模拟器不区分大小写,设备区分大小写。

    • 这意味着 default.png 或 Icon.png 将在模拟器中工作,但不能在必须命名为 Default.png 和 icon.png 的设备上工作(如果仍然无法工作,请阅读此答案
  2. 模拟器有不同的编解码器来播放音频和视频

    • 如果您使用 fe MPMoviePlayerController,您可能会在模拟器上播放某些视频,而在设备上它不起作用(使用 Handbrake->presets->iPhone & iPod Touch 为模拟器和设备创建可播放的视频)。
    • 如果您使用 AudioServicesPlaySystemSound(&soundID) 播放音频,您可能会在模拟器上播放声音,但不是设备。(使用 Audacity 打开您的声音文件,导出为 wav 并在终端中运行 afconvert -f caff -d LEI16@44100 -c 1 audacity.wav output.caf)
  3. 在第二次运行时也会出现这种闪烁问题,可以通过
    playerViewCtrl.initialPlaybackTime = -1.0;解决。
    在演奏结束时或每次开始之前。

  4. 模拟器通常要快得多,因为它不模拟硬件而是使用 Mac 资源,因此 fe sio2 应用程序(OpenGL、OpenAL 等框架)在模拟器上运行得更好,所有使用更多资源的东西在模拟器中运行明显好于在设备上。

我希望我们可以为此添加更多内容。

4

1 回答 1

3

只是为了澄清你的第一点:

模拟器不区分大小写,设备区分大小写

是否区分大小写不是模拟器的特征。这是底层文件系统的一个特征。设备上的文件系统区分大小写 HFS+,而 Mac 上的文件系统可能不区分大小写(默认情况下)。如果应用程序在区分大小写的 HFS+ 分区上运行,那么即使在模拟器中运行,它在从磁盘加载文件时也会区分大小写。

于 2010-06-15T22:40:58.950 回答