3

ビューコントローラの登録を解除してプロトコルに登録する適切な方法はありますか?

4

2 に答える 2

4

プロトコルに正式に準拠するには:

class_addProtocol([MyViewController class], @protocol(SomeProtocol));

さらに動的に:

class_addProtocol(objc_getClass("MyViewController"), objc_getProtocol("SomeProtocol"));

クラスにメソッド実装を実際に追加するには:

// - (int)someMethod:(int)arg;
int someMethod(id self, SEL _cmd, int arg)
{
    return arg * 2;
}

class_addMethod([MyViewController class], @selector(someMethod:), (IMP)someMethod, "i@:i");

class_addMethod()この場合、メソッドのシグネチャ(の4番目の引数)に注意してください。詳細については、ドキュメントを参照してください。

于 2012-12-17T00:43:25.610 に答える
1

Objective-Cランタイムメソッドを使用できます

BOOL class_addProtocol(Class cls, Protocol *protocol)

実行時にクラスにプロトコルを追加するためですが、私が知る限り、それを削除することはできません。

于 2012-12-17T00:40:44.670 に答える