【问题标题】:Notify iVar Value change通知 iVar 值更改
【发布时间】:2013-11-05 08:57:45
【问题描述】:

我想在 iVar 的值发生变化时收到通知。假设我们在不调用 setter 的情况下更改字符串的值,那么我将如何在同一个班级中了解。因为 KVO 和覆盖 setter 仅适用于调用 setter。不适用于 iVar。

【问题讨论】:

  • ivar设为私有,因此访问它的唯一方法是使用属性
  • 但在同一类
  • 如果是你的班级那你为什么直接使用 ivar,使用属性。
  • 我只使用属性,当它的值发生变化时我正在做一些任务。但很快我就会退出这个项目,其他人会来,他可能会尝试为 iVar 提供直接价值。正因为如此,只有我在想有没有可能,

标签: ios objective-c properties ivar


【解决方案1】:

当您直接更改 ivar 的值时,无法自动收到通知。如果您想在值更改时收到通知,那么通过将 ivar 设为私有来直接在类外部更改值是不可能的,并且在类内部,强迫自己永远不要直接更改它,除非在 setter 或 with一个 KVC 调用 (setValue:forKey:)。

【讨论】:

    猜你喜欢
    • 2013-06-15
    • 1970-01-01
    • 1970-01-01
    • 2020-02-10
    • 2010-11-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多