2011-11-15 24 views
8

Tôi có một đoạn mã tôi đang sử dụng khá thường xuyên và muốn tạo macro trên đó. Tôi không chắc chắn làm thế nào để làm điều đó mặc dù. Đây là mã tôi muốn sử dụngiOS tạo macro

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

Tôi muốn xác định khối này làm macro để sau này tôi có thể nói ví dụ addImage (...); Cảm ơn bạn đã giúp đỡ.

Trả lời

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

Sử dụng nó như thế này:

MY_MACRO(@"myLogo.png") 

Việc sử dụng {} tạo ra một khối phạm vi, mà sẽ ngăn chặn vấn đề với định nghĩa lại biến (nếu bạn có các biến có cùng tên, nơi bạn sử dụng vĩ mô).

0

sử dụng #define với bộ tiền xử lý, viết hàm hoặc viết phương thức cho lớp học của bạn.

0

Hãy thử như sau vĩ mô

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