简体   繁体   中英

Swift Protocol in Framework

so i have this weird problem that's been bugging me for the last few hours.

I have a framework in which I created a protocol named ChatDelegate (code bellow)

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

and a ViewController (not in the framework), which conforms to the ChatDelegate, like so

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

but the compiler still complains that the ChatContainerViewController does not conform to the protocol and I don't understand why?? The function has the exact same header (I also tried putting public in front ...didn't help).

Any help would be much appreciated.

UPDATE I figured it out. The problem was that I had Message class in my project and in the framework and the compiler didn't know which one to choose. Adding ModuleName in front (ModuleName.Message) fixed it. :D

I had the same issue. The file that defined the protocol had a target membership in both the framework and the application targets. I solved the issue by making the file that defined the protocol only have a target membership in the framework and then adding an import <FrameworkName> to the code in the application target that needed to use the protocol.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM