最近將我以前的一個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進來的模塊中的類或方法。