2011-07-05 3 views
5

próbowałem użyć MKMapView, i chciałem pokazać/zmienić rodzaj mapy, którą oferuje Google. Wszyscy wiemy, że na stronach internetowych możemy używać normalnego typu dróg, typu hybrydowego, satelitarnego/fotograficznego, a ostatnio także typu reliefowego.Framwork MKMapView nie ma typu mapy google relief w deklaracji MKMapType, ale działa

ten ostatni jest tym, który chciałbym użyć. Nie miałem problemu z wstawieniem go do standardowego interfejsu API Google UIWebView + HTML +, , ale z wielu powodów wolałbym go użyć z MKMapView. Ale ... niespodzianka:

"wydaje się" nie mogliśmy skorzystać z mapy typu tat ...

czytanie w firmy Apple MKMapView Class Reference:

MKMapType

Typ mapy do wyświetlenia.

enum { 
    MKMapTypeStandard, 
    MKMapTypeSatellite, 
    MKMapTypeHybrid 
}; 

gdzie 0 jest MKMapTypeStandard

1 jest MKMapTypeSatellite

i oczywiście 2 MKMapTypeHybrid ...

więc jesteśmy oficjalnie mogą korzystać tylko te 3 rodzaje map, nie typ ulgi, wydaje się, że w ogóle nie ma go w ramce z jabłkami ...

ale jestem ciekawy i spróbowałem tego:

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

i działa idealnie, jabłko framweork pyta google o odpowiedni typ mapy, a następnie pokazuje to w moim widoku, zarówno w symulatorze, jak i urządzeniu iPhone.

tak, to moje pytanie:

Myślisz, że mogę go używać w każdym razie, nawet jeśli to nie jest „oficjalnie” ogłosił w dokumentach jabłko? Czy Apple odrzuci moją aplikację, aby korzystać z jej ram w ten sposób?

góry dzięki,

luca

Odpowiedz

4

Jestem pewien, że Apple będzie odrzucić aplikację gdyby wiedział, że robi to, ponieważ są one dość oczywiste, że można użyć wyłącznie udokumentowane funkcje. Wiem, że mają narzędzia, które wykrywają odwołania do nieudokumentowanych metod i korzystania z prywatnych frameworków, ale nie wiem, czy to rozciąga się na sprawdzanie wartości właściwości, gdy jest ona ustawiona.

Jestem jednak pewien, że tworzy to delikatny kod. Jeśli Google wprowadzi inne typy map, a firma Apple zdecyduje się je wesprzeć w przyszłej aktualizacji SDK, nie ma gwarancji, że typ zwolnienia pozostanie taki jak 3. Co się stanie, jeśli Apple doda czek do tej właściwości, aby w przyszłym wydaniu na iOS ustawić na 3 rzucić wyjątek? Twoja aplikacja złamie się dla każdego, kto zaktualizuje swój system operacyjny i będziesz zmuszony do korzystania z innego rodzaju mapy, która może zaburzyć twoich użytkowników w miarę zmiany funkcji. To tylko dwa przykłady zmian poza kontrolą, które mogą to zepsuć dla użytkowników.

Podsumowując, możesz użyć tego: Tak, ale Apple może odrzucić Twoją aplikację i jedynym sposobem, aby dowiedzieć się, czy to zrobi, czy nie, jest to zrobić. Musisz też pozostać na palcach, aby zapewnić, że przyszłe aktualizacje iOS nie złamią kodu.

+0

tak, to rozsądna odpowiedź. napisałem to samo pytanie na forum dla programistów Apple, kto wie, może ktoś z zespołu Apple może odpowiedzieć ... mam tylko nadzieję, że jak już działa, Apple może planować dodanie go w niedalekiej przyszłości w nowym wydaniu z framwork ... – meronix

Powiązane problemy