Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/117.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 框架内的Swift协议_Ios_Frameworks_Delegates_Swift3_Protocols - Fatal编程技术网

Ios 框架内的Swift协议

Ios 框架内的Swift协议,ios,frameworks,delegates,swift3,protocols,Ios,Frameworks,Delegates,Swift3,Protocols,所以我有一个奇怪的问题,这几个小时一直困扰着我 我有一个框架,在其中我创建了一个名为ChatDelegate的协议(代码如下) 还有一个ViewController(不在框架中),它符合ChatDelegate,如下所示 extension ChatContainerViewController: ChatDelegate { func chat(_ chatCollectionView: UICollectionView, didSelect message: Message) {

所以我有一个奇怪的问题,这几个小时一直困扰着我

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

还有一个ViewController(不在框架中),它符合ChatDelegate,如下所示

extension ChatContainerViewController: ChatDelegate {
   func chat(_ chatCollectionView: UICollectionView, didSelect message: Message) {
      print("did select")
   }
}
但是编译器仍然抱怨ChatContainerServiceController不符合协议,我不明白为什么??函数有完全相同的标题(我也试着把public放在前面…没有帮助)

任何帮助都将不胜感激

更新
我想出来了。问题是我的项目和框架中都有Message类,编译器不知道选择哪一个。在前面添加ModuleName(ModuleName.Message)修复了它:我也有同样的问题。定义协议的文件在框架和应用程序目标中都具有目标成员身份。我通过使定义协议的文件在框架中仅具有目标成员身份,然后向需要使用协议的应用程序目标中的代码添加
导入
,解决了这个问题。

您是否委托chatCollectionView实例?您的意思是?让chatVC=ChatViewController.viewController();chatVC.delegate=self;addSubviewFromViewController(chatVC,useAutoLayout:true)我也有类似的问题。我的协议是用swift编写的,不会自动添加到我的framework.h头文件中,所以我将.swift文件添加到公共头文件中,但仍然找不到它。(我得到的错误是模块“frameworkName”中没有名为“protocolname”的类型。)对此的任何帮助都将不胜感激。
extension ChatContainerViewController: ChatDelegate {
   func chat(_ chatCollectionView: UICollectionView, didSelect message: Message) {
      print("did select")
   }
}