2011-11-15 52 views
8

我有一段我经常使用的代码,并想从中创建一个宏。我不确定如何做到这一点。这是我想用iOS创建宏

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

的代码,我想定义此块宏,所以我可以在以后例如addImage说(...);谢谢你的帮助。

回答

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

使用方法如下:

MY_MACRO(@"myLogo.png") 

采用{}创建范围块,这将防止变量重新定义的问题(如果你有相同的名称,在您使用的宏观变量)。

0

使用的#define与预处理,写一个功能,或写你的类方法

0

尝试下面的宏

#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;