2011-07-05 8 views
5

MKMapViewを使用しようとしていましたが、Googleが提供するマップの種類を表示/変更したかったのです。 ウェブサイトでは、ノーマルロードタイプ、ハイブリッドタイプ、衛星/写真タイプ、さらに最近ではレリーフタイプも使用できることは、皆さんも知っています。MKMapViewフレームワークはMKMapType宣言で救済Googleマップタイプを持っていませんが、動作します

この最後は私が使いたいものです。私はUIWebView + HTML +標準のGoogle API、 に挿入するのに問題はありませんでしたが、私はMKMapViewでそれを使用することを好む多くの理由がありました。 しかし...驚き:

アップルMKMapViewクラスリファレンスに読んで...私たちはマップのTATタイプを使用することができませんでした "そう":

MKMapType

表示するマップのタイプ。 0がMKMapTypeStandard

ため

1である

enum { 
    MKMapTypeStandard, 
    MKMapTypeSatellite, 
    MKMapTypeHybrid 
}; 

はMKMapTypeSatellite

で、もちろん2のMKMapTypeHybridです...

ので、我々は公式マップのちょうどそれらの3種類を使用することを許可されています、レリーフタイプではなく、リンゴのフレームワークにはまったく存在しないようです...

私は興味がありますので、これを試しました:

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

これは完璧に動作し、リンゴのフレームワークは正しいタイプのマップを求めて、シミュレータとiPhoneデバイスの両方のビューに表示します。

ので、それが私の質問です:あなたは、それが「正式に」リンゴの文書で宣言されていない場合でも、私はとにかくそれを使用することができ

と思いますか? Appleは私のアプリがこのようにフレームワークを使用することを拒否しますか?事前に

おかげで、

ルカ

答えて

4

私は、彼らはあなたが唯一の文書化機能を使用することができることを非常にはっきりしているとして、あなたがそれをやっていた知っていたならば、Appleはあなたのアプリケーションを拒否し確信しています。私は、文書化されていないメソッドやプライベートフレームワークの使用を検出するツールを持っていることを知っていますが、それが設定されたときにプロパティの値をチェックすることにまで及ぶかどうかはわかりません。

私は確信していますが、これは脆弱なコードを作成することです。 Googleが他のマップタイプを導入し、将来のSDKアップデートでAppleがそれらをすべてサポートすることを決めた場合、救済タイプが3のままであるという保証はありません。また、Appleがこのプロパティに小切手を追加して、将来のiOSリリースの設定で3に設定すると例外がスローされますか?あなたのOSをアップグレードする人のためにあなたのアプリは壊れてしまい、機能が変化しているときにあなたのユーザーを怒らせるかもしれない別のマップタイプを使わなければなりません。これは、ユーザーのためにこれを破る可能性のあるコントロールの変更の2つの例です。

要約すると、これを使うことができます:はい、Appleはあなたのアプリを拒否し、拒否するかどうかを唯一の方法で拒否することがあります。将来のiOSアップデートがコードを壊さないように、あなたの足元に留まらなければなりません。

+0

はい、それは妥当な答えです。アップルの開発者フォーラムに同じ質問を投稿しました。アップルのチームのメンバーが答えてくれます...私はこれがうまくいくことを願っています。アップルは近い将来、新しいリリースでそれを追加する予定ですフレームワークの... – meronix

関連する問題