2012-09-03 1 views
0

Comment renvoyer une méthode d'initialisation personnalisée uniquement lorsque les données de géocodage inversé sont terminées?'return' après qu'un géocodeur CLGeocoder a des données géocodées inversées

Y a-t-il un moyen de le faire? J'ai supposé que je devrais juste ajouter 'return self' à la fin du completionHandler, mais cela revient juste à la méthode init, comme opposé au retour de la méthode init.

Toute aide est appréciée et merci d'avance! :)

Répondre

0

Vous pouvez traiter les sélecteurs de méthode sous forme de données avec

SEL theSelector = @selector(initWithStuff:); 

theSelector peut maintenant être passé autour comme tout autre type de données primitive.

ARC est utilisée pour appeler sélecteurs de méthode d'initialisation avec performSelector:, comme dans

id result = [target performSelector:theSelector]; 

est un peu délicat car le compilateur ne sait pas que la valeur retournée doit être libéré. Si vous pouvez utiliser une méthode de classe à la place, vous pouvez alors vivre avec l'avertissement que le compilateur vous donne ou envelopper ce peu de code avec

#pragma clang diagnostic push 
#pragma clang diagnostic ignored "-Warc-performSelector-leaks" 
id result = [[Target class] performSelector:theSelector]; 
#pragma clang diagnostic pop 
Questions connexes