ios – 框架中的Swift协议

前端之家收集整理的这篇文章主要介绍了ios – 框架中的Swift协议前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
所以我有这个奇怪的问题,在过去的几个小时里一直困扰着我.

我有一个框架,我在其中创建了一个名为ChatDelegate的协议(代码如下)

public protocol ChatDelegate: class {
   func chat(_ chatCollectionView:  UICollectionView,didSelect message: Message)
}

和一个ViewController(不在框架中),它符合ChatDelegate,就像这样

extension ChatContainerViewController: ChatDelegate {
   func chat(_ chatCollectionView: UICollectionView,didSelect message: Message) {
      print("did select")
   }
}

但编译器仍然抱怨ChatContainerViewController不符合协议,我不明白为什么??该函数具有完全相同的标题(我也尝试将公开放在前面……没有帮助).

任何帮助将非常感激.

UPDATE
我想到了.问题是我的项目和框架中有Message类,编译器不知道选择哪一个.在前面添加ModuleName(ModuleName.Message)修复了它. :d

解决方法

我遇到过同样的问题.定义协议的文件在框架和应用程序目标中都具有目标成员资格.我通过使定义协议的文件只在框架中具有目标成员资格然后添加导入< FrameworkName>来解决了这个问题.到需要使用协议的应用程序目标中的代码.

猜你在找的iOS相关文章