在方法定义和实现中使用宏

时间:2012-12-10 16:46:03

标签: objective-c ios

我想知道在iOS中的一个项目中开发多个目标时,您使用的最佳做法是什么。我在.h中有类似的东西:

(target1和targetX是预处理器宏)

#if target1
-(void)logOut:(UIButton*)sender;
#endif

有时候我会使用这样的东西(在.m中):

#if targetX
-(void)logOut:(UIButton*)sender{
.....
}
#endif
我正在以正确的方式做事吗?感谢。

1 个答案:

答案 0 :(得分:2)

对您的问题的简短回答是肯定的,只要一个目标定义-Dtarget1=1而另一个目标定义-DtargetX=1,那么您正在正确地执行此操作。

如果您已向一个目标添加了额外的编译器标志,例如:

-Dtarget1=1

然后在里面编码:

#if target1
    // code specific to target1
#endif

将成为已编译应用的一部分。

如果你有旗帜:

-Dtarget1=0

然后内部的任何事情:

#if target1
    // code specific to target1
#endif

不会成为已编译应用的一部分。

使用多个目标时,您可以执行以下操作:

#if target1
    // code specific to target1
#elif targetX
    // code specific to targetX
#endif