0

そのクラスを拡張することにより、クラスをプロトコルに準拠させようとしています。SKNode私の場合は、に準拠したいと思いUIAccessibilityIdentificationます。

UIAccessibilityIdentificationaccessibilityIdentifierには、オプションの文字列である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
        }
    }
}
4

0 に答える 0