自从我开始 iPhone/iPod 开发以来,我发现模拟器和真实设备的反应之间存在一些差异。也许我会遇到一些其他差异,我也必须弄清楚,也许其他人还没有在这里遇到这些问题,并且可以从知识中受益,也许你知道一些你本来会遇到的问题/差异很高兴在您花费几个小时或几天的时间弄清楚到底发生了什么之前就知道了。
这就是我遇到的情况。
-
模拟器不区分大小写,设备区分大小写。
- 这意味着 default.png 或 Icon.png 将在模拟器中工作,但不能在必须命名为 Default.png 和 icon.png 的设备上(如果仍然无法工作,请阅读这个答案 https://stackoverflow.com/questions/2233860/iphone-splash-default-png-displays-on-simulator-but-not-the-iphone/2982007#2982007)
-
模拟器有不同的编解码器来播放音频和视频
- 如果您使用 f.e. MPMoviePlayerController 您可能会在模拟器上播放某些视频,而在设备上则无法工作
(使用 Handbrake->presets->iPhone 和 iPod Touch 为模拟器和设备创建可播放的视频)。
- 如果您使用 AudioServicesPlaySystemSound(&soundID) 播放音频,您可能会看到模拟器上的声音,而不是设备上的声音。 (使用 Audacity 打开声音文件,导出为 wav 并在终端中运行 afconvert -f caff -d LEI16@44100 -c 1 audacity.wav output.caf)
另外,第二次运行时还会出现闪烁问题,可以通过以下方法解决
playerViewCtrl.initialPlaybackTime = -1.0;
在比赛结束时或每次开始之前。
模拟器通常要快得多,因为它不模拟硬件而是使用 Mac 资源,因此 f.e. sio2 应用程序(OpenGL、OpenAL 等框架)在模拟器上运行得更好,所有使用更多资源的东西在模拟器中都会比在设备上运行得更好。
我希望我们可以对此添加更多内容。
只是为了澄清你的第一点:
模拟器不区分大小写,设备区分大小写
区分大小写或不区分大小写并不是模拟器的特征。这是底层文件系统的一个特征。设备上的文件系统区分大小写 HFS+,而 Mac 上的文件系统可能不区分大小写(默认情况下)。如果应用程序在区分大小写的 HFS+ 分区上运行,则即使在模拟器中运行,从磁盘加载文件时也会变得区分大小写。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)