繁体   English   中英

观察者的整数属性

[英]Observer for an integer property

我有一个整数属性,该值可能会在运行时更改。 因此,如果此值已更改,我想将此属性注册给观察者,以便接收通知和调用方法。 我已经使用了Apple文档,但据我了解,这仅适用于NSObjects ,不适用于整数。 在我的.h我创建了@property int activePlayer;

这就是我在viewDidLoad所做的

[self.activePlayer addObserver:playerChangedObserver
          forKeyPath:@"activePlayer"
             options:(NSKeyValueObservingOptionNew |
                      NSKeyValueObservingOptionOld)
             context:NULL];

期待获得帮助。 谢谢

更新

也许您需要一些其他信息。 .h.m正在实现UIViewController ,在其中我使用了轻拂手势。 如果手势较弱,则int为1;如果手势稍强一些,则它将更改为2 在我的项目中,使用此变量很有意义,因此无法删除它。

我将观察员注册更改为:

[self addObserver:self
              forKeyPath:@"activePlayer"
                 options:(NSKeyValueObservingOptionNew |
                          NSKeyValueObservingOptionOld)
                 context:NULL];

第一个self是观察对象,属性来自该对象。 密钥路径是属性和我获取的第二个self ,因为如果密钥发生更改,它也应该接收消息。 我会误会那里的东西吗?

您是否实际尝试过此代码? 键值观察的入门示例是整数属性。 它进一步指出

如果属性是标量或C结构,则将值包装在NSValue对象中(与键值编码一样)。

因此,您需要先打开包装,然后再对其进行任何处理,但它应该可以正常工作。

你应该在你的.m中实现

observeValueForKeyPath:ofObject:change:context:

你应该用

self.activePlayer = 1;

设置您的“ activePlayer”属性

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM