2012-07-27 65 views

回答

5

是的,没有。

如果您使用iOS 6功能编写地图应用程序,它将不会在较早版本的iOS上运行,除非您检查是否存在这些方法。

更一般地说,MapKit框架足够智能,可以在适当的位置显示iOS 6地图,并在其他地方使用Google地图。但是,您需要避免在不支持的地方使用路由功能。因此,为了解决您的问题,iOS 4和iOS 5上的用户将看不到新的路由功能。

所以,如果你的应用程序不使用新的地图功能,你就完全没问题。如果确实如此,则需要采取措施,例如弱链接和方法检查,以确保您的应用程序不会尝试在旧系统版本上运行新的API。当然,在不支持所述代码的iOS版本上运行新代码会崩溃。

+0

谢谢老兄,完全懂了! – 2012-07-27 14:16:02

0

在文档中,它指定了哪些OS版本特定功能的工作。我目前没有文档(在PC上),但如果这些方法是在iOS6中添加的,它们将不能在早期版本中使用。你可以做什么来解决这个问题,就是使用#ifdef来检查用户的操作系统版本并根据需要禁用功能。

请注意,iOS6处于NDA之下,因此有关其中介绍的特定方法的问题应保存在Apple开发者论坛中。

编辑:#ifdef不是阻止它运行的方法。你只需检查你的应用程序的操作系统的版本,并做类似的事情:

if (os >= 6) sourceAddress stuff 
else if ((os >= 5) && (os < 6) ignore sourceAddress stuff 
+0

你不能以这种方式使用'#ifdef';这是一个预处理器指令,因此它在编译时被评估。你应该使用'respondsToSelector:' – Jim 2012-07-27 13:36:38

+0

'#ifdef'是一个编译时函数 - 如果你使用它来禁用特性,那么它们就不会在构建中,而不管它在哪里运行。如果它留下代码,那么它将始终处于。 – Tommy 2012-07-27 13:36:39

+0

谢谢!我明白了,我需要知道的只是检查iOS版本,并且做便利版本的东西... – 2012-07-27 14:17:48

相关问题