0

我正在使用单例对象/类,并且需要经常调用它的方法之一,并且需要从大型项目的许多地方调用。我需要定义一个宏来处理这个问题,但它目前不起作用。这也需要处理变量参数列表。这就是我为#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”会更容易,但我不能这样做。为什么?好吧,这很复杂,所以让我们假设我需要弄清楚如何为此使用宏......

谢谢!

4

1 回答 1

1

看起来您忘记将带有MyClassNameor实现的文件添加MyClass到您的项目中(您用两个不同的名称引用它,所以不确定哪个是正确的)。

于 2012-07-31T23:47:04.450 回答