加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

objective-c – 当库中没有类采用协议时,如何强制将协议链接到库

发布时间:2020-12-16 07:10:17 所属栏目:百科 来源:网络整理
导读:看来,如果我在项目中声明了一个Objective-C协议,但项目/目标中没有类实际采用该协议,那么运行时在运行时就不知道该协议. (即NSProtocolFromString(@“MyProtocol”)返回NULL)但是,如果我添加一个最小的“虚拟”类,如下所示: @interface Dummy : NSObject My
看来,如果我在项目中声明了一个Objective-C协议,但项目/目标中没有类实际采用该协议,那么运行时在运行时就不知道该协议. (即NSProtocolFromString(@“MyProtocol”)返回NULL)但是,如果我添加一个最小的“虚拟”类,如下所示:

@interface Dummy : NSObject < MyProtocol >
@end
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wprotocol"
@implementation Dummy
@end
#pragma clang diagnostic pop

…运行时将在运行时知道协议的存在.

是否有一种更优雅/更少hacky的方式来确保在运行时“已知”其他未被采用的协议?

解决方法

尝试@protocol(MyProtocol)而不是NSProtocolFromString(@“MyProtocol”).我发现它靠近本页底部 http://nshipster.com/at-compiler-directives/.这有助于回答这个问题吗?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读