Kurze Antwort:
Um in der Lage sein, es zu Unterklasse, die Basisklasse WDBaseViewController
muss als open
definiert werden statt public
im Rahmen Sie verwenden.
open class WDBaseViewController {
...
}
Wenn es ein interner Rahmen ist können Sie es selbst tun, sonst müssen Sie warten, bis der Autor Swift 3.
Lange Antwort zu unterstützen:
Swift 3 ist signifikant zu bringen Änderungen an der Zugriffssteuerung
Swift 2 hatte nur drei Zugriffsebenen:
private
: Einheiten sind nur verfügbar, von innerhalb der Quelldatei, in der sie definiert sind.
internal
: Entitäten sind für das gesamte Modul verfügbar, das die Definition enthält.
public
: Entitäten sind für die Verwendung als API vorgesehen und können von jeder Datei, die das Modul importiert, aufgerufen werden.
Swift 3 ist das Hinzufügen von 2 weiteren Zugriffsebenen (open
und fileprivate
) und die Änderung der Bedeutung von private
:
private
: Symbol sichtbar innerhalb der aktuellen Erklärung nur.
fileprivate
: Symbol in der aktuellen Datei sichtbar.
internal
: Symbol im aktuellen Modul sichtbar.
public
: Symbol außerhalb des aktuellen Moduls sichtbar.
open
: für Klasse oder Funktion außerhalb des aktuellen Moduls subclassed oder außer Kraft gesetzt werden.
Die Basisklasse 'WDBaseViewController' muss in dem von Ihnen verwendeten Framework als' open' anstatt als 'public' definiert werden. –
Siehe auch [Was ist das 'open' Schlüsselwort in Swift?] (Http://stackoverflow.com/questions/38947101/what-is-the-open-keyword-in-swift), und das Xcode 8 Beta 6 Release Anmerkungen. –
Ja, ich habe es gefunden. Vielen Dank. –