モデルオブジェクトを設定するために setValuesForKeysWithDictionary を使用しています。モデル オブジェクトは次のように定義されます。
@interface Media : NSObject
{
NSString *userId;
NSString *mediaType;
}
@property(nonatomic,copy) NSString *userId;
@property(nonatomic,copy) NSString *mediaType;
プロパティの合成は次のようになります。
@implementation Media
@synthesize userId;
@synthesize mediaType;
そして、次のようにクラスを初期化します。
NSMutableDictionary *dic = [NSMutableDictionary new];
[dic setValue:@"aaa" forKey:@"userId"];
[dic setValue:@"bbb" forKey:@"mediaType"];
Media *obj = [[Media alloc] init];
[obj setValuesForKeysWithDictionary:dic];
これはメッセージでクラッシュします
'[<Media 0x8a9f280> valueForUndefinedKey:]: this class is not key value coding-compliant for the key aaa.'
setValuesForKeysWithDictionary: 私の値をキーとして扱うのはなぜですか?? または setValuesForKeysWithDictionary: 関数の目的を誤解していますか?