Avatar ·

¿Qué significa la palabra clave `open` en Swift y en qué se diferencia de `public`?

¡Hola a todos! Empecé a estudiar Swift recientemente y me encontré con confusión al trabajar con modificadores de acceso. En la documentación de Apple dice que `open` es el nivel de acceso más alto, pero no entiendo del todo en qué se diferencia de `public`. Estoy escribiendo una pequeña biblioteca para trabajar con la red. Aquí hay un ejemplo de mi clase: ```swift public class NetworkManager { public func fetchData() { print("Fetching data...") } } ``` Todo funciona, pero leí que para las clases que pueden ser heredadas desde otro módulo, se debe usar `open`. Intenté reemplazar `public` por `open`: ```swift open class NetworkManager { open func fetchData() { print("Fetching data...") } } ``` No noté diferencias en el comportamiento. Por favor, indíquenme: 1. ¿Cuál es la diferencia real entre `open` y `public`? 2. ¿Cuándo se debe usar `open` y cuándo es suficiente `public`? 3. ¿Por qué Apple introdujo la palabra clave `open` si ya existía `public`? Estaré agradecido por su