我開發了一個使用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