pragma mark 獲取單個值
NSString *name = [p valueForKey:@"name"];
double money = [[p valueForKey:@"money"] doubleValue];
#pragma mark 獲取多層值
//NSString *PName = [p valueForKey:@"person.name"];
NSString *PName = [p valueForKeyPath:@"person.name"];
#pragma mark 模型轉(zhuǎn)字典
NSDictionary *dict = [p dictionaryWithValuesForKeys:@[@"name", @"money"]];
#pragma mark 獲取數(shù)組中對象的值
Person *p1 = [Person new];
p1.name = @"hh";
p1.money = 111;
Person *p2 = [Person new];
p2.name = @"ll";
p2.money = 222;
Person *p3 = [Person new];
p3.name = @"vv";
p3.money = 333;
NSArray *arr = @[p1, p2, p3];
// 如果數(shù)組中的元素都是同一種類型的數(shù)據(jù), 可以使用KVC獲取數(shù)組中所有對象的某個屬性的值
NSArray *res = [arr valueForKeyPath:@"name"];
#pragma mark 運算符
id res1 = [arr valueForKeyPath:@"@avg.money"];
#pragma mark 單個值
[p setValue:@"lmj" forKey:@"name"];
#pragma mark 多層賦值
[p setValue:@"xiaoqiang" forKeyPath:@"dog.name"];
[p setValue:@(110) forKeyPath:@"dog.price"];
#pragma mark 給私有成員變量賦值
/*
// [p setValue:@"cjp" forKey:@"_name"];
// [p setValue:@(30) forKey:@"_age"];
// SEL sel = @selector(say);
// [p performSelector:sel];
// [p say];
*/
#pragma mark 字典轉(zhuǎn)模型
NSDictionary *dict = @{
@"name":@"xxx",
@"money": @(998.1),
// @"score":@(100)
@"dog":@{
@"name":@"wangcai",
@"price":@(110)
}
};
// p.name = dict[@"name"];
// p.money = [dict[@"money"] doubleValue];
[p setValuesForKeysWithDictionary:dict];
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者