Ios 整数属性的观察者
我得到了一个整数属性,该值在运行时可能会更改。因此,如果此值已更改,我希望将此属性注册到观察者,以便接收通知和调用方法。我已经知道了,但据我所知,这只适用于Ios 整数属性的观察者,ios,objective-c,key-value-observing,Ios,Objective C,Key Value Observing,我得到了一个整数属性,该值在运行时可能会更改。因此,如果此值已更改,我希望将此属性注册到观察者,以便接收通知和调用方法。我已经知道了,但据我所知,这只适用于NSObjects,而不适用于整数。在我的.h中,我创建了@property int-activePlayer 这就是我在我的viewDidLoad [self.activePlayer addObserver:playerChangedObserver forKeyPath:@"activePlayer"
NSObjects
,而不适用于整数。在我的.h
中,我创建了@property int-activePlayer代码>
这就是我在我的viewDidLoad
[self.activePlayer addObserver:playerChangedObserver
forKeyPath:@"activePlayer"
options:(NSKeyValueObservingOptionNew |
NSKeyValueObservingOptionOld)
context:NULL];
希望得到一些帮助。谢谢
更新
也许你需要一些额外的信息。.h
和.m
正在实现一个UIViewController
,其中我使用了一个flick手势。如果手势弱,则int
为1,如果手势强一点,则将变为2
。在我的项目中,使用这个变量是有意义的,所以我不能删除它
我将观察员注册更改为:
[self addObserver:self
forKeyPath:@"activePlayer"
options:(NSKeyValueObservingOptionNew |
NSKeyValueObservingOptionOld)
context:NULL];
第一个self
是观察对象,属性来自该对象。键路径是属性和我使用的第二个self
,因为如果键发生更改,它也应该接收消息。我误解了吗?你真的试过这个代码吗?用于观察的键值用于integer属性。它进一步说明了这一点
如果属性是标量或C结构,则将值包装在NSValue对象中(与键值编码一样)
因此,您需要先将其解包,然后才能对其执行任何操作,但它应该按原样工作。您是否确实尝试过此代码?用于观察的键值用于integer属性。它进一步说明了这一点
如果属性是标量或C结构,则将值包装在NSValue对象中(与键值编码一样)
因此,您需要先将其解包,然后才能对其执行任何操作,但它应该按原样工作。您应该在.m中实现它
observeValueForKeyPath:ofObject:change:context:
你应该使用
self.activePlayer = 1;
要设置“activePlayer”属性,应在.m中实现
observeValueForKeyPath:ofObject:change:context:
你应该使用
self.activePlayer = 1;
要设置“activePlayer”属性,您搜索了吗?Try:是的,但由于我没有处理不同的对象,此解决方案对我不起作用。您搜索了吗?尝试:是的,但由于我没有处理不同的对象,这个解决方案对我不起作用。这应该如何解决我的问题?我实现了observeValueForKeyPath:ofObject:change:context:
方法,但显然肯定有问题。这应该如何解决我的问题?我实现了object:change:context:的observeValueForKeyPath:ofObject:change:context:
方法,但显然一定是出了什么问题。该方法中存在一个问题,我更新了activePlayer
,因此我问题中的更新部分工作得非常好。感谢这只是方法中的一个问题,我更新了activePlayer
,所以我的问题中的更新部分工作得很好。谢谢