簡體   English   中英

在Objective-C iPhone中動態設置鍵值編碼的鍵

[英]dynamically set the key for Key-Value Coding in objective-c iphone

我有一個叫mycallback的類:

[mycallback setValue:[code objectForKey:@"abc"] forKey:@"abc"];

我的許多控制器都需要調用它。 這是我從mysql數據庫中提取數據,然后將其發送到mycallback。 所以我可能不知道關鍵是什么。 除此之外,我不想在mycallback類中聲明實例變量,因為我希望將其分開。

不幸的是,如果上面運行了代碼,則會收到以下消息:

exception 'NSUnknownKeyException', reason: '[<CallbackClass 0x7b6c5d0> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key fence.'

因此,我想動態設置鍵,而不是在mycallback內部。 因此,我為NSDictionary創建了一個類別,並添加了valueForUndefinedKey方法:

- (id)valueForUndefinedKey:(NSString *)key
{
    NSLog(@"This key not being called %@", key);
    return nil;
}

但是1)未調用valueForUndefinedKey,2)我不確定在其中放置什么以使該錯誤消失。

感謝您的回應。

您已經定義了valueForUndefinedKey:這是用於處理返回值的方法。 但是在您的代碼段中,您似乎正在嘗試為未定義的鍵設置值。 在這種情況下,使用的方法是:

setValue:forUndefinedKey:

一個示例,基於您要嘗試執行的操作:

- (void)setValue:(id)value forUndefinedKey:(NSString *)key {
    NSLog(@"Attempting to set value: %@ for key: %@", value, key);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM