0

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) そのエラーを解消するために何を入力すればよいかわかりません。

返信ありがとうございます。

4

1 に答える 1

0

valueForUndefinedKey:戻り値を処理するものを定義しました。しかし、コードスニペットでは、未定義のキーに値を設定しようとしているように見えます。この場合、使用する方法は次のとおりです。

setValue:forUndefinedKey:

あなたがやろうとしているように見えることに基づいた例:

- (void)setValue:(id)value forUndefinedKey:(NSString *)key {
    NSLog(@"Attempting to set value: %@ for key: %@", value, key);
}
于 2012-05-23T15:10:00.643 に答える