我正在使用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:function的用途?
答案 0 :(得分:0)
-(NSDictionary*) dictionaryRepresentation
{
return [self dictionaryWithValuesForKeys:[NSArray arrayWithObjects:,userId,mediaType, nil]];
}
正如您所看到的,我使用了普通变量名而不是键。 @“userId”,@“mediaType”。
我最近将xcode更改为不同的字体主题,并且仍然习惯了新的字体颜色集。谢谢你们宝贵的时间。
答案 1 :(得分:0)
在声明变量时添加@objc作为前缀。
class Customer: NSObject
{
@objc var name: String?
@objc var email: String?
}
应该可以。