コメントであなたと一緒にいくつかの拡張の議論の後:MKOverlayViewの
オーバーライド可能な機能、そのコードはMapKit.frameworkのどこかに難読化されているためのようなcanDrawMapRect
が簡単に呼び出すコードにさかのぼることができません。
代わりに、典型的なアプローチは、フレームワークがその機能を使用していることの精神的なイメージを得るまで、ドキュメントを再読み込みすることです。 (それは、一般的に眉をひそめていると私はそれをお勧めしませんが、逆コンパイルバイナリのようなものがあります。)
canDrawMapRect
ドキュメント:MapKitでどこか:http://developer.apple.com/library/ios/documentation/MapKit/Reference/MKOverlayView_class/Reference/Reference.html#//apple_ref/doc/uid/TP40009715-CH1-SW10
そのドキュメントを読んだ後、私はこれを推測します。実際にビューを描画する前に、canDrawMapRect
が呼び出されています。サブクラスでその関数をオーバーライドしなかった場合は、スーパークラスのデフォルトの実装が呼び出され、常にYESを返してからdrawMapRect:
を呼び出します(MKOverlayViewをサブクラス化する場合はオーバーライドする必要があります)。
上記のリンク先のクラスは、おそらくNOを返します。その場合、MapKit.frameworkのコードはdrawMapRect:
という呼び出しをスキップし、何も表示されない(またはリフレッシュされる)ようです。
このケースでは、短い説明文であるを使用すると、コード探偵を再生し、すべてのコードを見ることができなくても分かりやすい文書が作成されることを願っています。
編集:もっと明確にする - MKOverlayViewは実際に何かを可視にするためにサブクラス化する必要があります。あなたの基本的な質問に取得する前に
私のオリジナルの答え -
短い答え:これらは、そのクラス内での使用のためのプライベート関数です。
長い回答:実装ファイルの先頭の の空の名前カテゴリで宣言された関数は、カテゴリが のクラスにのみ表示されます。したがって、それらの関数は、その クラスの実装内でのみ呼び出すことができます。 (C++の同等機能は、 関数をprivateと宣言するだけです)
3つの関数は、同じ.mファイル内で呼び出されます。 が掘り起こされていないと、私は彼らが最初の機能を書いたと推測してから、後で を使用しないことにしました。
私が見ることのできるところからは呼び出されず、いくつかのログステートメントを入れておくと価値があります。 あなたの便宜のために残しておいた便利な機能ですが、プロジェクトを実行する必要はありません。 – MCannon
返事をありがとう。彼らは実際にプロジェクトから呼び出されていますが、私の人生では私はどこにいるのか分かりません。 –