我尝试制作一个简单的宏来在 iOS 中创建和显示一个简单的“ok”对话框:
#define ALERT_DIALOG(title,message) \
do\
{\
UIAlertView *alert_Dialog = [[UIAlertView alloc] initWithTitle:(title) message:(message) delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];\
[alert_Dialog show];\
} while ( 0 )
如果我尝试在我的代码中使用它:
ALERT_DIALOG(@"Warning", @"Message");
我得到错误:
解析问题。预期的 ']'
并且错误似乎指向第二个@
之前"Message"
。
但是,如果我只是复制粘贴宏,我不会收到此错误:
NSString *title = @"Warning";
NSString *message = @"Message";
do
{
UIAlertView *alert_Dialog = [[UIAlertView alloc] initWithTitle:(title) message:(message) delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];
[alert_Dialog show];
} while ( 0 );
是否反对在宏中使用 Objective-c 结构?或者那是别的什么?