iOS создать макрос - PullRequest
       4

iOS создать макрос

8 голосов
/ 15 ноября 2011

У меня есть фрагмент кода, который я использую довольно часто, и я хотел бы сделать из него макрос.Я не совсем уверен, как это сделать, хотя.Вот код, который я хочу использовать

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

Я хочу определить этот блок как макрос, чтобы позже я мог сказать, например, addImage (...);Спасибо за вашу помощь.

Ответы [ 4 ]

18 голосов
/ 15 ноября 2011
#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 голосов
/ 15 мая 2015

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

0 голосов
/ 15 ноября 2011

Попробуйте следующий макрос

#define addImage( __imageName__)    \
UIImage *titleImage = [UIImage imageNamed:__imageName__];    \
UIImageView *titleImageView = [[UIImageView alloc] initWithImage:titleImage]; \
self.navigationItem.titleView = titleImageView; \
[titleImageView release]; \
0 голосов
/ 15 ноября 2011

используйте #define с препроцессором, напишите функцию или метод для вашего класса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...