我已經得到了我的文本框的觀察員,看起來,看看是否「啓用@屬性已更改。獲取更改的屬性與觀察者的價值
(void) observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *) context;
{
UITextField *txtField = (UITextField *)object;
BOOL new = [[change objectForKey:NSKeyValueChangeNewKey] boolValue];
BOOL old = [[change objectForKey:NSKeyValueChangeOldKey] boolValue];
if ((new != old) && (new = YES))
{
[self fadeDisable:txtField];
}
else if ((new != old) && (new = NO))
{
[self fadeEnable:txtField];
}
我想如果我用INT新和int老,1或0定義屬性是否啓用將返回,但是當我使用NSLog來查看你正在帶回來,這是一個很長的字符串。
我看通過文檔和它似乎objectForKey實際上返回一個id不是一個整數,但我不知道該怎麼辦。
編輯:我已經添加了我的比較代碼,試圖確定它是否從禁用啓用(或反之亦然)。還推薦使用boolValue修正。
它沒有給出預期的結果,也沒有調用正確的方法。這是對的嗎? 謝謝
*** int new *** ???你認爲它會編譯? –
它們是'id',因爲字典只能包含對象。如果原始屬性是一個'int',那麼你很可能會得到'NSNumber'。 – 2013-06-26 11:45:37
@ LithuT.V爲什麼不呢? – 2013-06-26 11:45:54