Objective c Xcode-用于多个方法的宏
我想将以下所有内容放在一个宏中,这样我就可以用一行代码将这些方法包含在不同的视图控制器中。在这种情况下,不能使用这些方法定义父VCObjective c Xcode-用于多个方法的宏,objective-c,xcode,methods,macros,Objective C,Xcode,Methods,Macros,我想将以下所有内容放在一个宏中,这样我就可以用一行代码将这些方法包含在不同的视图控制器中。在这种情况下,不能使用这些方法定义父VC - (void)method1 { //do stuff } - (void)method2 { //do more stuff } - (void)method3 { //do other stuff } 进行此操作的最佳地点是哪里?以及如何执行?在头文件中声明它,然后将其导入所有视图控制器。要么使用适合的现有标题(可能是AppDel
- (void)method1 {
//do stuff
}
- (void)method2 {
//do more stuff
}
- (void)method3 {
//do other stuff
}
进行此操作的最佳地点是哪里?以及如何执行?在头文件中声明它,然后将其导入所有视图控制器。要么使用适合的现有标题(可能是AppDelegate),要么创建一个新标题
// ThreeMethods.h
#define ThreeMethods \
- (void)method1 { \
//do stuff \
} \
\
- (void)method2 { \
//do more stuff \
} \
\
- (void)method3 { \
//do other stuff \
} \
您还可以将其导入到前缀头(项目中的.pch文件)中,该前缀头在编译之前添加到每个文件中。所以我必须在每一行都包含反斜杠?这些方法相当大。如果你的方法足够大,你不想花时间在每一行上加反斜杠,你真的不应该用宏来做这件事。为什么不把它们放在公共基类或助手对象中呢?虽然从技术上讲宏可以工作,但它们有一个价格标签:本质上是重复的代码,难以调试,等等@Elko我不能使用基类,但你能给我举一个例子说明如何在助手对象中实现这一点吗?你可以将这些方法放在另一个类中,并用它们工作的控制器对象实例化它们。如果他们大量使用私有数据,这将不容易。您也可以为这些方法定义一个接口。
// ViewController1.m
#import ThreeMethods.h
ThreeMethods
// ViewController2.m
#import ThreeMethods.h
ThreeMethods