2009-08-24 8 views
0

Je me demande ce qui se passe lorsque j'utilise un MKReverseGeocoderDelegate dans mon ViewController, mais que l'application s'exécute en 2.2.1. Parce que je supporte 2.2.1 mais en utilisant 3.0 comme SDK de base.Utilisation de délégués pour les classes iphone 3.0 sur les anciennes versions, en particulier le MKReverseGeocoderDelegate

J'ai déjà ajouté le framework en tant que lien souple pour supporter le travail sur 2.2.1 et je comprends que je dois préparer le code pour vérifier si la classe MKReverseGeocoder est disponible pour faire tout le travail de fantaisie avec le géocodeur, mais ne peut pas comprendre si le délégué va planter l'application sur 2.2.1 parce qu'elle n'existe pas. Voici comment je vérifier si la classe existe:

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

Mais je dois déclarer dans le fichier d'en-tête d'utiliser le délégué pour la geocodeClass. Je me demande comment cela fonctionne. Dois-je faire autre chose pour préparer ce code?

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

Merci, Leonardo

Répondre

0

Votre code est très bien. Dire que la classe est conforme au protocole est la façon de le faire, donc elle se compile correctement dans la version 3.0 et elle n'échouera pas dans les anciennes versions.

Les méthodes du délégué ne seront simplement pas appelées lors de l'exécution de 2.2.

+0

Merci! Je pense que ça fonctionne bien: D – Homer1980ar

Questions connexes