Я пытаюсь реализовать следующую библиотеку в моем проекте:вопросы уровня защиты при доступе на структуру в расширении
https://github.com/knutigro/COBezierTableView
Чтобы использовать это, следующие свойства могут быть заданы пользовательские значения:
public extension UIView {
public struct BezierPoints {
static var p1 = CGPoint.zero
static var p2 = CGPoint.zero
static var p3 = CGPoint.zero
static var p4 = CGPoint.zero
}
}
В моей MainVC это настраивается следующим образом:
UIView.BezierPoints.p1 = CGPoint(...
UIView.BezierPoints.p2 = CGPoint(...
UIView.BezierPoints.p3 = CGPoint(...
UIView.BezierPoints.p4 = CGPoint(...
В демонстрационном проекте Swift 2.3 ошибок нет. В проекте Swift 3 я получаю ошибку:
«p1 недоступен из-за« внутреннего »уровня защиты».
Может кто-то пролить свет на проблему здесь, я предполагаю, что у Swift 3 есть некоторые новые разрешения за кулисами, которые необходимо переопределить.
О, конечно! Мне не пришло в голову, что у демонстрационного проекта не было одинаковых целей. Изменение свойств для общественности разрешило эту проблему, и я также нашел этот полезный ресурс https://www.andrewcbancroft.com/2015/04/22/3-nuances-of-swift-extensions/ –