Objective c Xcode-用于多个方法的宏

Objective 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

我想将以下所有内容放在一个宏中,这样我就可以用一行代码将这些方法包含在不同的视图控制器中。在这种情况下,不能使用这些方法定义父VC

- (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