iPhone / iPod模拟器和设备之间的差异

时间:2010-06-15 22:37:14

标签: iphone video simulator ipod-touch

自从我开始iPhone / iPod开发以来,我遇到了模拟器与真实设备如何反应之间的一些差异。也许我会遇到一些其他的差异,我也必须弄清楚,也许其他人在这里没有遇到这些问题(YET)并且可以从知识中获利,也许你知道一些问题/差异你本来应该很高兴早些时候知道你花了几个小时或几天来弄清楚到底发生了什么。

所以这就是我遇到的情况。

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

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

    • 如果你使用f.e. MPMoviePlayerController您可能会在模拟器上播放某些视频,而在设备上它将无法正常工作 (使用Handbrake-> presets-> iPhone& iPod Touch为模拟器和设备创建可播放的视频)。
    • 如果您使用AudioServicesPlaySystemSound(& soundID)播放音频,您可能会在模拟器上播放声音但不是设备。 (使用Audacity打开声音文件,导出为wav并运行afconvert -f caff -d LEI16 @ 44100 -c 1 audacity.wav output.caf in terminal)
  3. 此外,第二次运行时出现闪烁问题,可以通过
    解决 playerViewCtrl.initialPlaybackTime = -1.0;
    无论是在比赛结束时还是在每次比赛开始之前。

  4. 模拟器大多快得多,因为它不模拟硬件但使用Mac资源,因此f.e. sio2应用程序(OpenGL,Op​​enAL等框架)在模拟器上运行得更好,使用更多资源的所有内容在模拟器中的运行效果明显优于在设备上运行。

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

1 个答案:

答案 0 :(得分:3)

只是澄清你的第一点:

  

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

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