我想在调试时将keyPath的内容打印为在控制台中可读的内容,但是我只获得类Name,而没有获得该类中目标对象的更多信息。
我的简而言之:
要了解我的意思,只需将\ Book.chapter之类的内容分配给一个对象,然后尝试将其放入调试控制台。我只看到本书,但没有看到这一章。
我要做什么:
对于我的大多数页面,这都可以正常工作。我正在这样使用keyPath:
static func hasRightsToShow(keyPath: AnyKeyPath) -> Bool {
let fieldName = rights[keyPath] // rights is a dictionary
let access = fieldAccessFor(fieldName: fieldName)
return access != .none
}
可能的keyPath值传递为:
hasRightsToShow(kp: \Book.chapter)
现在我的权限返回一个空字段,我看不到调试过程中的keyPath是什么。
我不能只是回到堆栈上查看谁通过了它,因为它运行的键路径数组有很多值。单检查所有值将是一个真正的痛苦...是的,可能是因为我使用了权限词典中不存在的字段,并且可以只查找那里的每个属性,但是如果我可以读取控制台中的完整路径,将节省更多时间。