我正在开发一个包含多个组件的项目。其中一些组件需要在应用程序之间重复使用 - 这些应用程序是相关的,但由于业务原因,它们本身无法合并。值得庆幸的是,下面的问题实际上并没有引起我的问题,但我对我如何解决它非常好奇。因为有一天我可能只需要实现以下模式。
假设我有一个名为Foo
的CocoaPod和另一个名为Bar
的CocoaPod。 Foo
使用实现Foo.BussinessLogic
协议的对象向其委托报告。 Bar
碰巧有一个相同的Bar.BussinessLogic
协议。我可以很容易地编写符合这两种协议的对象,但除了直接使Foo
符合Bar.BussinessLogic
之外,我如何连接到这两个,而不需要在每个唯一的工作周围写一对包装器当Foo向bar发送消息时说item as! Bar.BussinessLogic
,反之亦然?
答案 0 :(得分:1)
如果协议共享一堆方法,那么我的直觉就是让它们都符合第三个库中的通用协议,它们都可以依赖它们。
在Swift中你不能欺骗编译器并说'#34;相信我,他们有相同的方法"。
但是,我不确定这是否能回答您的问题,因为您问题中的类型非常模糊。还有很多其他可能的解决方案。这取决于实际情况。