我正在开发一个使用 MKMapView 的应用程序,我需要它在 iOS4、iOS5 和 iOS6 中运行。
我的问题是,如果我使用新的 iOS MapKit 功能进行开发,使用 iOS4 的人可以看到从 sourceAddress 到 destinationAddress 的路由之类的东西吗?
我正在开发一个使用 MKMapView 的应用程序,我需要它在 iOS4、iOS5 和 iOS6 中运行。
我的问题是,如果我使用新的 iOS MapKit 功能进行开发,使用 iOS4 的人可以看到从 sourceAddress 到 destinationAddress 的路由之类的东西吗?
是和不是。
如果您使用 iOS 6 功能编写地图应用程序,它将无法在旧版本的 iOS 上运行,除非您检查这些方法是否存在。
更一般地说,MapKit 框架足够智能,可以在适当的地方显示 iOS 6 地图,并在其他任何地方使用 Google 地图。但是,您需要避免使用不受支持的路由功能。因此,为了回答您的问题,iOS 4 和 5 上的用户将看不到新的路由功能。
因此,如果您的应用程序不使用新的地图功能,那您完全没问题。如果是这样,您需要采取措施,例如弱链接和方法检查,以确保您的应用不会尝试在旧系统版本上运行新 API。当然,在不支持上述代码的 iOS 版本上运行新代码会崩溃。
在文档中,它说明了哪些操作系统版本的特定功能可以使用。我没有文档(目前在 PC 上),但如果在 iOS6 中添加了这些方法,则它们在早期版本中将不可用。您可以做些什么来解决这个问题,即#ifdef
检查用户的操作系统版本并根据需要禁用功能。
请注意,iOS6 处于 NDA 之下,因此有关其中引入的特定方法的问题应保留在 Apple 开发者论坛中。
编辑:#ifdef
不是阻止它运行的方法。您只需检查应用程序中的操作系统版本并执行以下操作:
if (os >= 6) sourceAddress stuff
else if ((os >= 5) && (os < 6) ignore sourceAddress stuff
请参考这篇文章中给出的答案。 我应该担心苹果将在 iOS6 中停止使用谷歌地图的传闻吗?
它对你的问题有描述性的回答。