我从推送通知中获得了一些键和值。然后我想检查键是否是对象的属性,因此我可以相应地映射对象。但我希望能够使用小写键并且对象属性是驼峰式的。
所以问题是如何在 Swift 4 中实现一个不区分大小写的 NSObject 版本:
self.responds(to: Selector(value))
我从推送通知中获得了一些键和值。然后我想检查键是否是对象的属性,因此我可以相应地映射对象。但我希望能够使用小写键并且对象属性是驼峰式的。
所以问题是如何在 Swift 4 中实现一个不区分大小写的 NSObject 版本:
self.responds(to: Selector(value))
但我希望能够使用小写键并且对象属性是驼峰式的。
这里的问题是当您从驼峰式转换为小写时会丢失信息,因此您不能轻易地转换到另一个方向。
您需要构建一个将键映射到选择器的字典。尽管 Swift 有一些有限的自省功能,但手动创建字典可能是最简单的,并且只包含您希望参与此过程的那些属性:
let properties : [String] = ["firstName", "lastName", "address", "zipCode"]
var map = [String:String]()
properties {
map[$0.lowercased()] = $0
}
现在您可以使用map
来查找给定键的属性名称。