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