Использование «внутреннего» не работает при распространении проекта Swift через Cocoapods - PullRequest
0 голосов
/ 29 мая 2018

Я распространяю фреймворк через cocoapods, в котором я использую другую небольшую библиотеку, которая сделала некоторые расширения для распространенных классов, таких как Date, и также использует общее пространство имен, утверждая, что .week, .dayи т. д.

Я скопировал файлы, используемые в платформе, и объявил все объявления переменных как internal.

Однако некоторые из моих клиентов получают ошибки типа «Неоднозначная».использование «недели» при его использовании вместе с общими системами дат.

Неправильно ли я считать, что internal будет использоваться только для файлов внутри самого проекта?Или я должен сделать что-то совсем другое?

Пример кода

internal extension Int {
    internal var nanosecond: DateComponents { return nanoseconds }
    internal var second: DateComponents { return seconds }
    internal var minute: DateComponents { return minutes }
    internal var hour: DateComponents { return hours }
    internal var day: DateComponents { return days }
    internal var week: DateComponents { return weeks }
    internal var month: DateComponents { return months }
    internal var year: DateComponents { return years }
}

Это расширение доступно всем, кто загружает этот код через cocoapods.

1 Ответ

0 голосов
/ 29 мая 2018

internal означает свойство, доступное для использования только внутри модуля, в данном случае это модуль cocoapods для этой библиотеки, поэтому вы не можете видеть или использовать его в базе кода приложения, сделайте его public или open, тогда вашклиент может использовать их в своем проекте приложения.

Более подробную информацию можно найти в Документы Swift для контроля доступа

...