我有一个带有属性的类
@property (nonatomic) double* myDoubles
此属性有 3 个 double
myDoubles[0]; //0.02
myDoubles[1]; //0.42
myDoubles[2]; //0.99
如果值发生变化,我希望调用以下方法
[self setNeedsDisplay];
我试过使用 FBKVOController,但是没有用..
_observer = [FBKVOController controllerWithObserver:self];
[_observer observe:self
keyPath:@"myDoubles"
options:NSKeyValueObservingOptionNew
action:@selector(setNeedsDisplay)];
我不想启动 NSTimer 并只是检查更改。
最佳答案
这是不可能的。
通知之所以有效,是因为进行更改的代码通过某种知道通知监听器更改的方法来执行此操作。如果相同的代码只是简单地写入支持数据的内存位置,则永远不会触发通知。
您要做的只是声明一个代码将写入的内存位置;由此不会发生任何通知(除非您有非常依赖于系统的支持使其成为可能 - 内存观察点 - 然后您的问题会发生重大变化。这种支持(如果可用)非常有限并且没有很好的通用值(value))。
关于ios - 观察原始指针的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30131290/