运行iPhone OS 3.0的设备上的iPhone SDK2.0

时间:2009-06-30 20:38:00

标签: iphone xcode iphone-sdk-3.0 build

对不起,长篇大论....

我试图了解我在我的应用上获得的行为是否“正常”。 我有一个针对2.0 sdk版本开发的应用程序(即确保max #of设备可以运行它,因为我不使用任何“特殊”3.0功能我倾向于认为最低分母必须是最佳选择)。< / p>

所以在Xcode(最新版本的xcode)中,我确保所有内容都设置为2.0 api,包括框架引用。 我构建并且2.1设备上的东西运行良好(硬件是1gen iPhone)。 现在我在旧硬件(iPod touch)但最新软件3.0

的设备上进行测试

事情运行良好,但我在某些地方遇到不同的行为,例如: 1)工具栏动画不起作用 2)旋转表现不同(向右旋转设备显示我的屏幕镜像.. :-)这是“酷”但不是想要的

现在,我确信我可以“破解”并解决这些问题,但是对我来说有些事情没有意义,而且通常我知道我不了解某些事情,

问题是: 运行某些针对2.0编译的东西的设备是否必须表现完全相同,无论其当前的软件版本/硬件版本如何? 这不是关于向后兼容性的全部内容吗? 我希望运行2.0软件的3.0设备能够体验与运行2.0软件的2.0设备完全相同的流量。 我错过了什么?我身边缺乏理解在哪里?

感谢名单, -tzurs

3 个答案:

答案 0 :(得分:0)

大多数情况下它的行为相同,但有些情况(尤其是旋转周围)只是有点不同。他们也可能在工具栏或导航栏中重新排序了视图,因此如果您直接操纵这些类型的子视图,它们就会发生变化。

也可能是你依赖于2.0中存在的错误,如果你以“正确”的方式做某事,你就不会有任何问题从2.0到3.0。

特别是在旋转周围,如果你使用的是shouldAutoRotate ...作为触发器来做一些事情,请改为使用旋转通知。

答案 1 :(得分:0)

  

不是任何运行某些东西的设备   那是针对2.0编译的必须   无论如何都表现完全相同   其当前的软件版本/硬件   版?这不是全部   关于向后兼容性?

有点诙谐,但在微软的世界里,这是有道理的。但是,Apple世界传统上并没有对后向兼容性赋予太多价值。特别是当由于先前版本中的错误或由于使用方式而导致的行为时,它们原本不打算使用。

答案 2 :(得分:0)

最容易看到变化的地方是差异或差异。这是作为每个版本的文档集的一部分发布的,并显示已更改的内容以及如何响应支持不同版本。另请查看Apple支持多个版本的示例代码。