Iphone MKMapView framwork';在MKMapType声明中不使用relief google map类型,但它可以工作

Iphone MKMapView framwork';在MKMapType声明中不使用relief google map类型,但它可以工作,iphone,objective-c,google-maps,mapkit,Iphone,Objective C,Google Maps,Mapkit,我试图使用MKMapView,我想显示/更改谷歌提供的地图类型。 我们都知道,在网站上,我们可以使用普通道路类型、混合道路类型、卫星/照片类型,最近还可以使用浮雕类型 最后一个是我想用的。我在UIWebView+HTML+标准google API中插入它没有问题, 但出于许多原因,我现在更喜欢将其与MKMapView一起使用。 但是惊喜: “似乎”我们不能使用tat类型的地图 在苹果MKMapView类参考中阅读: MKMapType 要显示的地图类型 enum { MKMapTypeSt

我试图使用MKMapView,我想显示/更改谷歌提供的地图类型。 我们都知道,在网站上,我们可以使用普通道路类型、混合道路类型、卫星/照片类型,最近还可以使用浮雕类型

最后一个是我想用的。我在UIWebView+HTML+标准google API中插入它没有问题, 但出于许多原因,我现在更喜欢将其与MKMapView一起使用。 但是惊喜:

“似乎”我们不能使用tat类型的地图

在苹果MKMapView类参考中阅读:

MKMapType

要显示的地图类型

enum {
   MKMapTypeStandard,
   MKMapTypeSatellite,
   MKMapTypeHybrid
};
其中0表示MKMapTypeStandard

1是MKMapTypeSatellite

当然,2是MKMapTypeHybrid

因此,我们被正式允许只使用这3种地图,而不是浮雕类型,似乎它根本不存在于苹果框架中

但我很好奇,所以我尝试了这个:

myMKMapView.mapType = 3; // a number not officially declared
苹果framweork要求谷歌搜索正确类型的地图,然后在模拟器和iPhone设备中显示在我的视图中

这就是我的问题:

你认为我可以使用它,即使它不是“正式”宣布在苹果的文件? 苹果会拒绝我的应用程序以这种方式使用它的框架吗

提前感谢,


卢卡

我确信,如果苹果知道你在使用你的应用程序,他们会拒绝你的应用程序,因为他们很清楚,你只能使用记录在案的功能。我知道他们有工具可以检测对未记录方法的调用和私有框架的使用,但我不确定这是否扩展到在设置属性时检查属性的值

但我确信这会创建脆弱的代码。如果谷歌推出了其他地图类型,而苹果决定在未来的SDK更新中支持所有地图类型,则无法保证救济类型将保持为
3
。另外,如果苹果在这个属性中添加了一个检查,那么在未来的iOS版本中将它设置为
3
会抛出一个异常呢?您的应用程序将因升级其操作系统的任何人而中断,您将被迫使用另一种地图类型,这可能会在功能发生变化时让您的用户感到不安。这只是两个你无法控制的变化的例子,可能会破坏你的用户


总之,你能用这个吗:是的,但苹果可能会拒绝你的应用程序,唯一能确定他们是否会拒绝的方法就是这么做。您还必须保持警惕,以确保将来的iOS更新不会破坏您的代码。

是的,这是一个合理的答案。我在苹果开发者论坛上发布了同样的问题,谁知道呢,苹果团队的一些人可能会回答。。。我只是希望,因为它已经开始工作了,苹果可能计划在不久的将来在framwork的新版本中添加它。。。