我想创建一个自定义CGPoint子类来添加一些属性,但是我收到了这个错误:
从非协议非类型'CGPoint'
继承
我不知道为什么这是不可能的。我的课很简单:
import UIKit
class IYAttachPoint: CGPoint {
var holder: String = "No holder"
var unavailable: Bool = false
}
我尝试添加一些像CoreGraphics或QuartzCore这样的库但没有成功。如果已经有一些问题或解决方案,请指出我正确的方向。
答案 0 :(得分:18)
这是不可能的,因为您想从类继承结构。 CGPoint
是一个结构,因此它不支持继承,尽管它可以符合协议。
如果你真的想这样做,请使用合成而不是继承。
class IYAttachPoint {
var point:CGPoint?
var holder: String = "No holder"
var unavailable: Bool = false
}
答案 1 :(得分:0)
您收到的错误消息告诉您确切的错误。唯一可以用作基类的东西就是类。您还可以使您的类/ struct / enum符合协议,但只能使用类进行继承。由于CGPoint是一个结构,因此不能用于子类化。
答案 2 :(得分:0)
您无法从Structure继承类。结构不支持继承。 但是如果你愿意,你可以使用扩展来进行结构化。