Iphone 目标C:我能';手表';一个带有代码的变量,这样在它改变的瞬间我就可以把它改回来?

Iphone 目标C:我能';手表';一个带有代码的变量,这样在它改变的瞬间我就可以把它改回来?,iphone,ios,objective-c,ipad,Iphone,Ios,Objective C,Ipad,有一个BOOL值是iOS UIKit对象的一部分,我想将它设置为NO。一些用户操作会改变它的状态,对此我无能为力 有没有一种方法可以使用objective-c运行时“监视”此变量,并在发生更改时立即停止更改?KVO支持属性更改侦听器的概念 以下是文档:KVO支持属性更改侦听器的概念 以下是文档:什么类别、什么属性、什么目标?你不应该这样做,我相信如果你告诉我们你想要实现什么,会有更好的解决方案。可以每隔1/30秒运行一个计时器来检查它,然后在更改时将其设置回原位,但正如@H2CO3所说,一般来说

有一个BOOL值是iOS UIKit对象的一部分,我想将它设置为NO。一些用户操作会改变它的状态,对此我无能为力


有没有一种方法可以使用objective-c运行时“监视”此变量,并在发生更改时立即停止更改?

KVO支持属性更改侦听器的概念


以下是文档:

KVO支持属性更改侦听器的概念


以下是文档:

什么类别、什么属性、什么目标?你不应该这样做,我相信如果你告诉我们你想要实现什么,会有更好的解决方案。可以每隔1/30秒运行一个计时器来检查它,然后在更改时将其设置回原位,但正如@H2CO3所说,一般来说,这听起来不是一个很好的方法来覆盖这种行为。@H2CO3我更感兴趣的是,是否可以在objective-c中设置某种变量“watch”。就像你说的,还有另一种方法(也有它的缺点)-因此,如果有可能按照我的要求去做,这将是一个更好的解决方案。@Jordan是的,关键值观察是你想要的,但仍然是。@Luke一个计时器会增加一点开销,不过这是个好主意。另外,这可能没问题,但以防万一,它应该是一种在属性更改时立即响应的方式,而不是在1/30秒后。什么类,什么属性,什么目标?你不应该这样做,我相信如果你告诉我们你想要实现什么,会有更好的解决方案。可以每隔1/30秒运行一个计时器来检查它,然后在更改时将其设置回原位,但正如@H2CO3所说,一般来说,这听起来不是一个很好的方法来覆盖这种行为。@H2CO3我更感兴趣的是,是否可以在objective-c中设置某种变量“watch”。就像你说的,还有另一种方法(也有它的缺点)-因此,如果有可能按照我的要求去做,这将是一个更好的解决方案。@Jordan是的,关键值观察是你想要的,但仍然是。@Luke一个计时器会增加一点开销,不过这是个好主意。此外,这可能没问题,但以防万一,它可能应该是一种在属性更改时立即响应的方式,而不是1/30秒后。