【发布时间】:2012-04-18 14:56:26
【问题描述】:
我正在尝试使用objc_getProtocol() 函数来获取对表示NSApplicationDelegate 协议的结构的引用:
Protocol *protocol = objc_getProtocol("NSApplicationDelegate");
但是,由于某种原因,它总是返回 NULL。
NSObject、NSCoding、NSTableViewDelegate 和 NSTableViewDataSource 等其他协议工作正常。
NSApplicationDelegate 有什么特别之处,还是我做错了什么?
【问题讨论】:
-
是mac应用吗?如果是,请添加该标签!因为我在 iOS 中找不到 NSApplicationDelegate(这里我们使用的是 UIApplicationDelegate)应用程序。!?如果我错了,请纠正我。!
-
是的,它是一个 Mac 应用程序(因此有 AppKit 标签)。
-
您可以使用
@protocol(NSApplicationDelegate)来获取。 -
那么 _NSApplicationLightLaunchDelegate 呢?
-
不幸的是,我需要使用 objc_getProtocol(),因为直到运行时我才真正知道协议名称(我只是在示例中对字符串进行硬编码)。
标签: objective-c cocoa protocols objective-c-runtime nsapplication