Objective-C 宏 - 调用单例对象的方法



我正在处理一个singleton对象/类,需要经常调用它的一个方法,并且需要在大型项目中的多个位置调用它。我需要定义一个宏来处理这个问题,但它目前不起作用。这也需要处理变量参数列表。这就是我为#define:所做的

#define OldMethod(var, ...) [[MyClass getInstance] myMethod:var, ## __VA_ARGS__]

我也试过这个:

#define OldMethod(var, ...) [[MyClass getInstance] myMethod:[NSString stringWithFormat:fmt, ## __VA_ARGS__]]

结果是编译器出现如下错误。

"_OBJC_CLASS_$_MyClass", referenced from:
Objc-class-ref-to-MyClass in AnotherClassDelegate.o
Symbole(s) not found
Collect2: Id returned 1 exit status

顺便说一句,这是我最近开始做的一个现有项目,在这一点上我不能过多地干预它的结构。将所有对"OldMethod"的调用替换为对新方法的调用会更容易,或者重写"OldMethod",但我做不到。为什么?这很复杂,所以我们假设我需要弄清楚如何使用宏。。。

谢谢!

看起来您忘记了将具有MyClassNameMyClass实现的文件(您用两个不同的名称引用它,因此不确定哪一个是正确的)添加到您的项目中。

最新更新