ios - 观察原始指针的值

标签 ios objective-c key-value-observing

我有一个带有属性的类

@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/

相关文章:

ios - 获取用户的当前位置/坐标

ios - 事件指标多线程执行

ios - 在 block 函数中使用 KVO

ios - 无法将 NSDictionary 参数写入自定义对象

objective-c - iOS MapKit 用户定位而不初始化 map

Objective-C 撤消管理器问题

cocoa - 未针对所有属性调用 keyPathsForValuesAffectingValueForKey

android - 推荐用于无障碍移动应用程序的开发平台?

包含响应页面的 iOS iFrame

ios - iOS 6 上的 allowsAirPlayVideo 属性