私はシングルトン オブジェクト/クラスを使用しており、そのメソッドの 1 つを頻繁に呼び出す必要があり、大規模なプロジェクトの多くの場所から呼び出す必要があります。これを処理するマクロを定義する必要がありますが、現時点では機能していません。これも可変引数リストを処理する必要があります。これは私が #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」を書き直す方が簡単ですが、それはできません。なんで?複雑なので、これにマクロを使用する方法を理解する必要があると仮定しましょう...
ありがとう!