我开发了一个使用MKMapView的应用程序,我需要它运行在iOS4,iOS5和iOS6上。iOS 6 MapKit是否适用于以前版本的iOS?
我的问题是,如果我开发使用新的iOS MapKit功能,有人可以使用iOS4看到像从sourceAddress到destinationAddress的路由吗?
我开发了一个使用MKMapView的应用程序,我需要它运行在iOS4,iOS5和iOS6上。iOS 6 MapKit是否适用于以前版本的iOS?
我的问题是,如果我开发使用新的iOS MapKit功能,有人可以使用iOS4看到像从sourceAddress到destinationAddress的路由吗?
是的,没有。
如果您使用iOS 6功能编写地图应用程序,它将不会在较早版本的iOS上运行,除非您检查是否存在这些方法。
更一般地说,MapKit框架足够智能,可以在适当的位置显示iOS 6地图,并在其他地方使用Google地图。但是,您需要避免在不支持的地方使用路由功能。因此,为了解决您的问题,iOS 4和iOS 5上的用户将看不到新的路由功能。
所以,如果你的应用程序不使用新的地图功能,你就完全没问题。如果确实如此,则需要采取措施,例如弱链接和方法检查,以确保您的应用程序不会尝试在旧系统版本上运行新的API。当然,在不支持所述代码的iOS版本上运行新代码会崩溃。
在文档中,它指定了哪些OS版本特定功能的工作。我目前没有文档(在PC上),但如果这些方法是在iOS6中添加的,它们将不能在早期版本中使用。你可以做什么来解决这个问题,就是使用#ifdef
来检查用户的操作系统版本并根据需要禁用功能。
请注意,iOS6处于NDA之下,因此有关其中介绍的特定方法的问题应保存在Apple开发者论坛中。
编辑:#ifdef
不是阻止它运行的方法。你只需检查你的应用程序的操作系统的版本,并做类似的事情:
if (os >= 6) sourceAddress stuff
else if ((os >= 5) && (os < 6) ignore sourceAddress stuff
请参考本文给出的答案。 Should I be worried about rumors that Apple will stop using Google Maps in iOS6?
它有你的问题的描述性答案。
谢谢,贴子不错! – 2012-07-27 14:16:38
谢谢老兄,完全懂了! – 2012-07-27 14:16:02