そのクラスを拡張することにより、クラスをプロトコルに準拠させようとしています。SKNode
私の場合は、に準拠したいと思いUIAccessibilityIdentification
ます。
UIAccessibilityIdentification
accessibilityIdentifier
には、オプションの文字列であるproperty という 1 つの要件しかありません。XCode は、setter と getter を含む次のスタブを自動的に提案します。
public var accessibilityIdentifier: String? {
get {
//code
}
set(accessibilityIdentifier) {
//code
}
}
私の質問:
ゲッターとセッターを正しく実装して機能させるにはどうすればよいですか? ( のいくつかの組み込みサブクラスでこれを使用する必要があるため、サブクラス化はオプションではありませんSKNode
)
現時点でaccessibilityLabel
は、SKNode
スーパークラスの を に割り当てる次の設定を使用accessibilityIdentifier
しています。UI テストのみで、ユーザーのナレーションはまだ使用していないため、現時点では問題なく動作します。ただし、これは将来変更される可能性があります。したがって、適切で直接的な実装の方が適切です。
私の現在の拡張子:
import SpriteKit
extension SKNode: UIAccessibilityIdentification {
public var accessibilityIdentifier: String? {
get {
super.accessibilityLabel
}
set {
super.accessibilityLabel = newValue
}
}
}