iOS创建宏

时间:2011-11-15 10:49:57

标签: iphone ios objective-c macros

我有一段我经常使用的代码,并希望用它制作一个宏。我不确定如何做到这一点。这是我想要使用的代码

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

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

4 个答案:

答案 0 :(得分: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" )

{}的使用创建了一个范围块,它可以防止变量重定义的问题(如果你有使用宏的同名变量)。

答案 1 :(得分:0)

将#define与预处理器一起使用,编写函数,或为您的班级编写方法

答案 2 :(得分:0)

尝试以下宏

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

答案 3 :(得分:0)

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