O que significa a palavra-chave `open` em Swift e como ela difere de `public`?
Olá a todos! Comecei a estudar Swift recentemente e me deparei com uma confusão ao trabalhar com modificadores de acesso. Na documentação da Apple está escrito que `open` é o nível de acesso mais alto, mas não entendo completamente qual é a diferença dele para `public`.
Estou escrevendo uma pequena biblioteca para trabalhar com rede. Aqui está um exemplo da minha classe:
```swift
public class NetworkManager {
public func fetchData() {
print("Fetching data...")
}
}
```
Tudo funciona, mas li que para classes que podem ser herdadas de outro módulo, é necessário usar `open`. Tentei substituir `public` por `open`:
```swift
open class NetworkManager {
open func fetchData() {
print("Fetching data...")
}
}
```
Não notei diferença no comportamento. Por favor, me expliquem:
1. Qual é a