swift - 如何将所需的协议属性添加到扩展?
问题描述
我试图通过扩展该类来使该类符合协议。就我而言,我想SKNode
符合UIAccessibilityIdentification
.
UIAccessibilityIdentification
只有一个要求,即 property accessibilityIdentifier
,它是一个可选字符串。XCode 自动向我建议以下带有 setter 和 getter 的存根。
public var accessibilityIdentifier: String? {
get {
//code
}
set(accessibilityIdentifier) {
//code
}
}
我的问题:
如何正确实现 getter 和 setter 以使其工作?(子类化不是一个选项,因为我需要在几个内置子类上使用它SKNode
)
目前我正在使用以下设置,它将超类的 分配给accessibilityLabel
并且它目前工作正常,因为我只是 UI 测试并且我还没有为用户使用画外音。然而,这在未来可能会改变。因此,适当的直接实施会更好。SKNode
accessibilityIdentifier
我目前的扩展:
import SpriteKit
extension SKNode: UIAccessibilityIdentification {
public var accessibilityIdentifier: String? {
get {
super.accessibilityLabel
}
set {
super.accessibilityLabel = newValue
}
}
}
解决方案
推荐阅读
- actionscript-3 - TypeError:错误 #1009:无法访问空对象引用的属性或方法。在 AoW_2_fla::MainTimeline/frame1()
- python - Django Admin,可折叠文本框
- python - 在现有文件python中的特定位置插入内容
- azure - 如何在 VSTS CI-Build 中集成 AzSK
- xamarin - Xamarin Android 弹出页面内存泄漏
- android - 我在 android studio 中使用回收器视图,每个项目都有一个可绘制的。如何通过单击特定位置来更改可绘制对象的颜色?
- oracle - 厨师食谱资源如何在完成 oracle setup.exe 完全运行后才运行食谱/资源
- javascript - iOS cordova-plugin-camera 在 PNG 上添加黑色背景
- spark-graphx - 用相同的数据和代码运行GraphX的connectedComponents两次,结果不同
- excel - 我想结合 2 个不同的 IF 嵌套逻辑来获得自动答案