iOS升級swift3 遇到Overriding non-open instance method outside of its defining module的解決方案

最近將我以前的一個swift項目升級swift3,說多了都是淚。。。swift

 

其中,遇到這樣一個錯誤:ide

這是用的三方:ENSwiftSideMenu時引出的3d

 

報了兩個錯:blog

一、Cannot inherit from non-open class 'ENSideMenuNavigationController' outside of its defining module繼承

二、Overriding non-open instance method outside of its defining moduleit

 

以前swift2.3明明都是OK的,如今變這樣了,對比了下,發現是這個致使的:io

swift2.3:class

swift3.0import

 

而後,我將public寫成open後,從新run就ok了。。。module

 

open:公開的,內部外部模塊均可訪問,這個開放性最大;public:也是公開的,但仍是與open有所區別。

open與public區別:public在只能限制在定義所在模塊內部進行繼承與方法的重寫,而open則是隻要模塊有被import,在可在此模塊中繼承或者重寫被import進來的模塊中的類或方法。

相關文章
相關標籤/搜索