我也想:
Protocol *protocol = objc_getProtocol("NSApplicationDelegate");
如此处所示:
objc_getProtocol() 为“NSApplicationDelegate”返回 NULL?
接受的答案说它返回 NULL 因为我还没有完成以下操作之一:
- 被一个班级收养,
- 或在源代码中的某处引用(使用
@protocol()
)
现在,@protocol
这是毫无疑问的,因为我在运行时运行它,对吧?所以这让我将协议添加到类中,BOOL class_addProtocol(Class cls, Protocol *protocol)
但是,当尚未创建协议时,如何将协议添加到类中?
换句话说,似乎我必须这样做:
Protocol *protocol = objc_getProtocol("NSApplicationDelegate");
BOOL class_addProtocol(class, protocol);
但是第一行返回NULL ...