Swift 4.2类遵循带NSObject的Objective-C协议遇类型错误求助
快速解决Swift遵循Objective-C协议时需实现NSObject方法的问题
嘿,作为Swift新手碰到这种情况真的太正常了,别慌!我给你说个一步到位的解决办法:
让你的MyClass直接继承自NSObject就好啦!修改后的代码是这样的:
class MyClass: NSObject, OtherProtocol { }
为什么这能解决问题?
因为你的Objective-C协议OtherProtocol继承了NSObject协议,这意味着任何遵循它的类都需要满足NSObject协议的所有@objc方法要求。而NSObject类本身已经实现了所有这些标准方法(包括那个让你头疼的self()方法),你的子类继承后就自动拥有了这些实现,Xcode自然就不会再逼着你手动补那些没用的方法桩了。
而且因为你的协议里只有@optional方法,你甚至连协议的方法都不用实现,直接这样写就完全符合要求,完美避开那些你根本不会用到的NSObject方法。
内容的提问来源于stack exchange,提问作者wheresmycookie
相关产品推荐
相关产品推荐

