簡體   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