Модификаторы доступа Swift Package

Я просто создал Swift Package с одним UI class в этом.

Мне удалось загрузить в репо и использовать в проекте.

В первый раз, когда я попытался импортировать его и использовать в основном проекте, возникла проблема с модификаторами доступа, потому что мой package было not public но определяется как class MainView: UIView {}.

После того, как я изменил свой пакет на public class MainView: UIView {} это сработало хорошо.

Мой вопрос:

Разве этот пакет не похож на любой другой из моих классов проекта? Почему предполагается использовать с public?

Есть ли способ использовать мои классы пакетов без public access modifier?

1 ответ

Решение

Модификатор доступа по умолчанию - «внутренний», что указывает на то, что он находится внутри самого проекта. Пакет (фреймворк) Swift - это сторонний «проект», который вы реализуете вложенным в свой проект. Это означает, что вы пытаетесь получить доступ к коду из другого проекта.

TL;DR, Нет, вы не можете пропустить использование модификаторов публичного доступа, если хотите достичь функциональности

Другие вопросы по тегам