Zum Inhalt springen

Swift 4: Änderungen bei der Access Control

Wurden Eigenschaften und Funktionen in Swift bisher mit dem Access Level private versehen, standen sie in Extensions des zugrundeliegenden Typs nicht zur Verfügung – auch nicht innerhalb desselben Source-Files. Es war eine Umstellung auf das Access Level fileprivate notwendig, damit Extensions in derselben Datei darauf zugreifen konnten, doch das hatte gleichzeitig zur Folge, dass auch alle anderen Elemente innerhalb derselben Quellcode-Datei Zugriff auf jene Eigenschaften und Funktionen erhielten.

Dieses Verhalten ändert sich nun mit Swift 4. Ist eine Eigenschaft oder Funktion als private deklariert, können Extensions des zugrundeliegenden Typs (sofern sie innerhalb derselben Source Code-Datei erstellt sind) problemlos darauf zugreifen.

Das folgende Listing zeigt ein Beispiel dazu. Dort wird eine Structure MyStruct mit einer privaten Property privateProperty deklariert. Im Anschuss erfolgt die Erstellung einer Extension für jene Structure, in der die Methode printPrivateProperty() implementiert wird. Jene Methode gibt den Wert von privateProperty mittels print() aus. In Swift 3 würde dieser Code zu einem Compiler-Fehler führen, da aus der Extension heraus nicht auf die als private deklarierte Property zugegriffen werden kann. In dem im Herbst erscheinenden Swift 4 ist solch ein Code nun aber möglich.

Published inDevelopment

Sei der Erste der einen Kommentar abgibt

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.