我正在尝试将以下库实现到我的项目中:
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有一些新的幕后权限接管需要被覆盖。
答案 0 :(得分:7)
我想,你提到的扩展名与你的MainVC目标不同?
由于p1
等未指定保护级别(并且struct
不是private
),因此它们会自动internal
。这意味着,您只能在同一目标中访问这些属性。
但是早期版本的Swift也是如此。我不知道,为什么你的代码有效。