2011-07-05 19 views
5

我試圖使用MKMapView,並且想要顯示/更改Google提供的地圖種類。 我們都知道,在網站上,我們可以使用常規道路類型,混合類型,衛星/照片類型,最近也可以使用浮雕類型。MKMapView framwork在MKMapType聲明中沒有浮雕google-map類型,但它起作用

這最後一個是我想使用的。我沒有問題將其插入到UIWebView + HTML +標準谷歌API, ,但由於很多原因,現在我更願意使用它與MKMapView。 但是......驚喜:

「看來」 我們不能使用地圖的達式......

蘋果的MKMapView類參考閱讀:

MKMapType

要顯示的地圖的類型。

enum { 
    MKMapTypeStandard, 
    MKMapTypeSatellite, 
    MKMapTypeHybrid 
}; 

其中0是MKMapTypeStandard

1 MKMapTypeSatellite

當然2 MKMapTypeHybrid和...

,所以我們正式允許使用的只是那些3種地圖,不是浮雕類型,它似乎根本不存在蘋果framwork ...

但我很好奇,所以我試過這個:

myMKMapView.mapType = 3; // a number not officially declared 

它的工作原理非常完美,蘋果framweork向谷歌請求正確類型的地圖,然後在模擬器和iPhone設備中顯示它。

所以,這是我的問題:

你覺得我反正可以使用它,即使它不是「正式」蘋果文件中聲明? Apple會拒絕我的應用程序使用它的框架嗎?

在此先感謝,

盧卡

回答

4

我相信蘋果會拒絕你的應用程序,如果他們知道你在做這件事,因爲他們很清楚,你只能使用記錄的功能。我知道他們有一些工具可以檢測對未記錄方法的調用以及私有框架的使用情況,但是這些工具是否可以擴展到在設置屬性時檢查其價值,我不確定。

但我確信這會造成脆弱的代碼。如果Google推出了其他地圖類型,並且Apple決定在未來的SDK更新中支持這些地圖類型,則不能保證該救濟類型將保持爲3。另外,如果Apple向該屬性添加支票,以便在將來的iOS版本中將其設置爲3會引發異常?您的應用會因任何升級其操作系統的用戶而中斷,您將被迫使用另一種地圖類型,因爲功能正在改變,這可能會讓用戶感到不安。這只是您的控制變化的兩個例子,可能會爲您的用戶打破這一點。

總之,你可以使用這個:是的,但蘋果可能會拒絕你的應用程序,唯一的方法就是找出他們是否願意這樣做。您還必須留在腳趾上以確保未來的iOS更新不會破壞您的代碼。

+0

是的,這是一個合理的答案。我在蘋果開發者論壇發佈了同樣的問題,誰知道,蘋果團隊中的一些人可能會回答......我只是希望,因爲它已經有效,蘋果可能計劃在不久的將來在新版本中添加它的框架... – meronix

相關問題