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