После продолжительного обсуждения с вами в комментариях:
Переопределяемые функции MKOverlayView, такие как canDrawMapRect
, не могут быть легко отслежены до их вызывающего кода, потому что этот код запутан где-то в MapKit.framework.
Вместо этого типичный подход состоит в том, чтобы перечитать их документацию, пока вы не получите ментальную картину того, для чего фреймворк использует эту функцию. (Существует такая вещь, как декомпиляция двоичных файлов, хотя это обычно не одобряется, и я не рекомендую это делать.)
canDrawMapRect
документация: http://developer.apple.com/library/ios/documentation/MapKit/Reference/MKOverlayView_class/Reference/Reference.html#//apple_ref/doc/uid/TP40009715-CH1-SW10
Прочитав их документацию, я пришел к следующему выводу: где-то в MapKit.framework canDrawMapRect
вызывается до фактического рисования вида. Если вы не переопределили эту функцию в своем подклассе, она вызывает реализацию суперкласса по умолчанию, которая всегда возвращает YES, а затем вызывает drawMapRect:
(которое ДОЛЖНО быть переопределено, если вы создаете подкласс MKOverlayView, иначе ничего не будет отображаться!)
Класс, который вы связали выше, потенциально возвращает NO. В этом конкретном случае код в MapKit.framework пропускает вызов drawMapRect:
и ничего не отображается (или не обновляется).
Итак, короче говоря: в этом случае вы должны играть в детектива по коду и надеяться, что документация написана достаточно ясно, чтобы понять это, не имея возможности видеть весь код.
Изменить: просто для дальнейшего уточнения. Похоже, что MKOverlayView должен быть подклассом, чтобы фактически генерировать что-то видимое.
Мой первоначальный ответ, прежде чем перейти к вашему основному вопросу -
Краткий ответ: это частные функции для использования в этом классе.
Длинный ответ: функции, объявленные в категории с пустым именем в верхней части файлов реализации, видны только классу, который расширяет категория. Таким образом, эти функции можно вызывать только внутри реализации этого класса. (эквивалент С++ просто объявлял бы функции закрытыми)
3 из этих 4 функций вызываются в одном и том же файле .m. Не копаясь, я предполагаю, что они написали первую функцию, а затем решили ее не использовать.
person
MechEthan
schedule
26.07.2011