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