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