2
有没有正确的方法注销和注册视图控制器协议?如何在运行时注册/取消注册协议?
有没有正确的方法注销和注册视图控制器协议?如何在运行时注册/取消注册协议?
正式地符合一协议:
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, "[email protected]:i");
当心方法签名(在这种情况下,参见class_addMethod()
)参见documentation更多信息。
可以使用Objective-C的运行方法
BOOL class_addProtocol(Class cls, Protocol *protocol)
以协议在运行时添加的一类,但据我所知,你无法将其删除。