別のクラスの実装への追加として、プライベート クラス (.m 内で宣言および定義されている) があり、そのプライベート クラスを内部で使用しています。
そのプライベート クラスのメソッドの 1 つをスウィズルしたいと思います。
私はカテゴリを定義し、いつものことをしました:
+(void)load
{
Method original, swizzled;
original = class_getInstanceMethod(objc_getClass("SomePrivateClass"), @selector(somePrivateMethod:));
swizzled = class_getInstanceMethod(self, @selector(swizzled_somePrivateMethod:));
method_exchangeImplementations(original, swizzled);
}
問題は、私の実装が明らかにこのプライベート クラスについて何も知らず、self がカテゴリを追加するクラスを参照していることです。そのため、元の実装を呼び出す方法がなく、一般にプライベート クラスを操作する方法がありません。
これに取り組むための適切なアプローチは何ですか?