【发布时间】:2019-09-09 11:56:07
【问题描述】:
在我的片段中,我有以下代码:
class {
private val resetHash: String by argument(ARGUMENT_RESET_HASH)
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
// resetHash is never set
}
}
参数定义为:
inline fun <reified T> Fragment.argument(argumentName: String): ReadOnlyProperty<Fragment, T> {
return object : ReadOnlyProperty<Fragment, T> {
override fun getValue(thisRef: Fragment, property: KProperty<*>): T {
return arguments?.get(argumentName) as T
}
}
}
私有成员 resetHash 永远不会被设置。即使我在 private val 的行上设置断点,它也永远不会被命中。
什么可以阻止它被设置?我什至尝试在 onViewCreated 方法中放置一个单击处理程序,以查看当我单击某个按钮时它是否已设置,但从未设置。
为什么断点不会命中?
【问题讨论】:
-
argument委托是如何定义的? -
我更新了帖子以显示它。