Использование делегатов для классов iphone 3.0 в более старых версиях, особенно в MKReverseGeocoderDelegate - PullRequest
0 голосов
/ 25 августа 2009

Мне интересно, что происходит, когда я использую MKReverseGeocoderDelegate в моем ViewController, но приложение работает в 2.2.1. Потому что я поддерживаю 2.2.1, но использую 3.0 в качестве базового SDK.

Я уже добавил фреймворк как мягкое связывание для поддержки работы с 2.2.1, и я понимаю, что должен подготовить код, чтобы проверить, доступен ли класс MKReverseGeocoder для выполнения всей сложной работы с геокодером, но я просто не понимаю, если делегат будет сбой приложения на 2.2.1, потому что он не существует. Вот как я проверяю, существует ли класс:

// Try to found location
Class geocoderClass = NSClassFromString(@"MKReverseGeocoder");
if (geocoderClass != nil)
{ // Do my stuff here 
}

Но я должен объявить в заголовочном файле использование делегата для geocodeClass. Мне интересно, как это работает. Должен ли я сделать что-нибудь еще для подготовки этого кода?

@interface MainViewController : UIViewController <FlipsideViewControllerDelegate, MKReverseGeocoderDelegate> {
// My declarations here
}

Спасибо, Leonardo

1 Ответ

0 голосов
/ 25 августа 2009

Ваш код в порядке. Указание на то, что класс соответствует протоколу, является способом сделать это, поэтому он правильно компилируется в 3.0 и не потерпит неудачу в более старых версиях.

Методы от делегата просто не будут вызываться при запуске в 2.2.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...