[英]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.