プロパティを追加するカスタムCGPointサブクラスを作成したいのですが、次のエラーが発生します。
非プロトコル、非クラス型 'CGPoint'からの継承
なぜこれが不可能なのか私にはわかりません。私のクラスはこれと同じくらい簡単です:
import UIKit
class IYAttachPoint: CGPoint {
var holder: String = "No holder"
var unavailable: Bool = false
}
CoreGraphicsやQuartzCoreなどのライブラリを追加しようとしましたが、成功しませんでした。この問題に対する質問または解決策がすでにある場合は、正しい方向に向けてください。
クラスから構造体を継承したいので、これは不可能です。 CGPoint
は構造体であるため、プロトコルに準拠することはできますが、継承をサポートしていません。
本当にこれを実行したい場合は、継承ではなくコンポジションを使用してください。
class IYAttachPoint {
var point:CGPoint?
var holder: String = "No holder"
var unavailable: Bool = false
}
表示されるエラーメッセージは、何が問題なのかを正確に示しています。基本クラスとして使用できるのはクラスだけです。クラス/構造体/列挙型をプロトコルに準拠させることもできますが、継承に使用できるのはクラスだけです。 CGPointは構造体であるため、サブクラス化の目的には使用できません。
構造からクラスを継承することはできません。構造は継承をサポートしていません。ただし、必要に応じて、構造の拡張を使用できます。