【发布时间】:2020-12-22 13:35:21
【问题描述】:
我正在使用 netmera 分析工具的事件结构,它会自动生成任何代码,如下所示。
不幸的是,根据结构,它必须使用选择器获取变量的值,当我测试它时,它会带来变量的名称而不是变量的值。
你能帮忙解决这个问题吗?
class SearchControlEvent: NetmeraEvent {
@objc let kSearchControlEvent: String = "xyxyxy"
@objc var name: String = "test_data_1"
@objc var screen: String = "test_data_2"
@objc var current: String = "test_data_3"
override class func keyPathPropertySelectorMapping() -> [AnyHashable: Any] {
let name = NSStringFromSelector(#selector(getter: self.name))
let screen = NSStringFromSelector(#selector(getter: self.screen))
let current = NSStringFromSelector(#selector(getter: self.current))
print(name) // print: name
print(screen) // print: screen
print(current) // print: current
return[
"xxx": NSStringFromSelector(#selector(getter: self.name)),
"yyy": NSStringFromSelector(#selector(getter: self.screen)),
"zzz": NSStringFromSelector(#selector(getter: self.current))
]
}
override var eventKey : String {
let key = NSStringFromSelector(#selector(getter: self.kSearchControlEvent))
print(key) // print: kSearchControlEvent
return key
}
}
【问题讨论】:
-
看起来你在找
value(forKey:)developer.apple.com/documentation/objectivec/nsobject/…如果你需要一个非对象的结果(即值类型),做起来有点麻烦,但还是可行的stackoverflow.com/a/43714950/5329717
标签: ios objective-c swift xcode