宏的定义

时间:2014-10-30 04:06:10

标签: ios objective-c

与宏的定义有关的一个简单问题:

enter image description here

如何修复它,哇〜

2 个答案:

答案 0 :(得分:0)

您可以使用以下宏替换该块,以关闭该错误:

#define MBLabelAlignmentCenter __SYSTEM_VERSION_IT >= 7.0 ? NSTextAlignmentCenter : UITextAlignmentCenter

答案 1 :(得分:0)

预处理器条件宏只接受编译时常量表达式。你的#define部分可以在编译时解决。只有在条件是可以在编译时确定的条件时,#if才有效。它不能用于根据运行应用程序的环境在运行时更改行为。

2种解决方法:

#define MBLabelAlignmentCenter  __SYSTEM_VERSION_IT >= 7.0 ? NSTextAlignmentCenter : UITextAlignmentCenter

或使用plain if else代码:

if(__SYSTEM_VERSION_IT >= 7.0)
{
    MBLabelAlignmentCenter = NSTextAlignmentCenter;
}
else{
    MBLabelAlignmentCenter = UITextAlignmentCenter;
}

希望这会有所帮助.. :)