2011-07-05 9 views
5

estaba tratando de usar un MKMapView, y quería mostrar/cambiar el tipo de mapa que google ofrece. Todos sabemos que en los sitios web podemos usar el tipo de carreteras normales, el tipo híbrido, el tipo de satélite/foto y, más recientemente, también el tipo de relieve.MKMapView framwork no tiene el tipo de relieve google-map en la declaración MKMapType, pero funciona

este último es el que me gustaría usar. No tuve ningún problema para insertarlo en una API de Google UIWebView + HTML + estándar, , pero por muchas razones ahora preferiría usarlo con MKMapView. Pero ... sorpresa:

"parece" que no podía usar el tipo de mapa tat ...

lectura en de Apple MKMapView Referencia de la Clase:

MKMapType

El tipo de mapa para mostrar.

enum { 
    MKMapTypeStandard, 
    MKMapTypeSatellite, 
    MKMapTypeHybrid 
}; 

donde 0 es para MKMapTypeStandard

1 es MKMapTypeSatellite

y por supuesto 2 es MKMapTypeHybrid ...

por lo que se permite oficialmente a utilizar sólo los 3 tipos de mapas, no el tipo de relieve, parece que no existe en absoluto en el marco de la manzana ...

pero tengo curiosidad e intenté esto:

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

y funciona perfectamente, la manzana framweork pregunta a google el tipo correcto de mapa y luego lo muestra en mi opinión, tanto en el simulador como en el dispositivo iPhone.

así, esa es mi pregunta: ¿

¿Cree usted que podría utilizar de todos modos, incluso si no es "oficialmente" declarado en los documentos de manzana? ¿Apple rechazaría mi aplicación para usar su marco de esta manera?

gracias de antemano,

luca

Respuesta

4

Estoy seguro de que Apple podría rechazar su aplicación si sabían que estaba haciendo, ya que son bastante claro que sólo se puede utilizar características documentadas. Sé que tienen herramientas que detectan llamadas a métodos no documentados y el uso de marcos privados, pero no sé si eso se extiende a verificar el valor de una propiedad cuando está configurada.

Lo que estoy seguro es que esto crea código frágil. Si Google introduce otros tipos de mapas y Apple decide apoyarlos a todos en una futura actualización del SDK, no hay garantía de que el tipo de relieve se mantenga como 3. Además, ¿qué sucede si Apple agrega un cheque a esta propiedad para que en un futuro lanzamiento de iOS configurándolo como 3 arroje una excepción? Su aplicación se romperá para cualquiera que actualice su sistema operativo y se verá obligado a utilizar otro tipo de mapa que puede molestar a los usuarios ya que la funcionalidad está cambiando. Eso es solo dos ejemplos de cambios fuera de su control que podrían romper esto para sus usuarios.

En resumen, podría usar esto: Sí, pero Apple puede rechazar su aplicación y la única forma de saber si lo harán o no es hacerlo. También tendrás que mantenerte alerta para garantizar que las futuras actualizaciones de iOS no rompan tu código.

+0

sí, esa es una respuesta razonable. Publiqué la misma pregunta en el foro de desarrolladores de Apple, quién sabe, algún chico del equipo de Apple puede responder ... solo espero que, como ya funciona, Apple podría estar planeando agregarlo en un futuro cercano en un nuevo lanzamiento de la estructura ... – meronix

Cuestiones relacionadas