2011-11-15 6 views
8

J'ai un morceau de code que j'utilise assez souvent et je voudrais en faire une macro. Je ne suis pas exactement sûr de savoir comment faire cela. Voici le code que je veux utiliseriOS créer une macro

UIImage *titleImage = [UIImage imageNamed:@"myLogo.png"]; 
UIImageView *titleImageView = [[UIImageView alloc] initWithImage:titleImage]; 
self.navigationItem.titleView = titleImageView; 
[titleImageView release]; 

Je veux définir ce bloc comme une macro pour que je puisse dire plus tard, par exemple, addImage (...); Merci de votre aide.

Répondre

18
#define MY_MACRO(img) \ 
    {\ 
     UIImage *titleImage = [UIImage imageNamed:img]; \ 
     UIImageView *titleImageView = [[UIImageView alloc] initWithImage:titleImage]; \ 
     self.navigationItem.titleView = titleImageView; \ 
     [titleImageView release];\ 
    } 

utiliser comme ceci:

MY_MACRO(@"myLogo.png") 

L'utilisation de {} crée un bloc de champ, ce qui évite les problèmes avec redéfinitions variables (si vous avez des variables avec le même nom, où vous utilisez la macro).

0

utilisation #define avec le préprocesseur, écrire une fonction ou écrire une méthode pour votre classe.

0

Essayez la macro suivante

#define addImage(__imageName__) \ 
UIImage *titleImage = [UIImage imageNamed:__imageName__]; \ 
UIImageView *titleImageView = [[UIImageView alloc] initWithImage:titleImage]; \ 
self.navigationItem.titleView = titleImageView; \ 
[titleImageView release]; \ 
0

#define Image_Macro @ "myLogo.png" UIImage *titleImage = [UIImage imageNamed:Image_Macro]; UIImageView *titleImageView =[[UIImageView alloc] initWithImage:titleImage]; self.navigationItem.titleView = titleImageView;

Questions connexes