Was bedeutet das Schlüsselwort `open` in Swift und wie unterscheidet es sich von `public`?
Hallo zusammen! Ich habe vor kurzem mit Swift angefangen und bin bei der Arbeit mit Zugriffsmodifikatoren auf Verwirrung gestoßen. In der Apple-Dokumentation steht, dass `open` die höchste Zugriffsebene ist, aber ich verstehe nicht ganz, worin der Unterschied zu `public` besteht.
Ich schreibe eine kleine Bibliothek für die Netzwerkarbeit. Hier ist ein Beispiel meiner Klasse:
```swift
public class NetworkManager {
public func fetchData() {
print("Fetching data...")
}
}
```
Alles funktioniert, aber ich habe gelesen, dass für Klassen, die aus einem anderen Modul vererbt werden können, `open` verwendet werden muss. Ich habe versucht, `public` durch `open` zu ersetzen:
```swift
open class NetworkManager {
open func fetchData() {
print("Fetching data...")
}
}
```
Ich habe keinen Unterschied im Verhalten bemerkt. Bitte erklären Sie mir:
1. Was ist der tatsächliche Unterschied zwischen `open` und `public`?
2. Wann sollte man `open` verwenden und wann reicht `public`?
3. Warum hat Apple überhaupt das Schlüsselwort `open` eingeführt, wenn es `public` gibt?
Ich wäre dankbar für eine
Noch keine Antworten.
Anmelden um eine Antwort zu hinterlassen