//创建Person 对象
Person *per = [[Person alloc] initWithName:@"张三" sex:@"男" age:@21];
//setter getter
[per setName:@"达芬奇"];
[per setSex:@"?"];
[per setAge:@123];
NSLog(@"%@",per);
//创建Teacher 对象
Teacher *teacher = [[Teacher alloc] initWithName:@"蛋蛋" sex:@"?" age:23 number:@354];
NSLog(@"%@ %@ %ld",[teacher name],[teacher sex],[teacher age]);
//创建Student 对象
Student *stu = [Student studentWithName:@"小明" sex:@"男" age:23 number:@138];
//使用点语法
stu.sex = @"妹子";
stu.age = 24;
NSLog(@"%@ %@ %ld %@",stu.name,stu.sex,stu.age,stu.number);
//KVC
Student *stu = [[Student alloc] init];
//使用KVC 强制访问stu的实例变量
[stu setValue:@"蛋蛋" forKey:@"_name"];
NSLog(@"%@",stu.name);
[stu setValue:@"女" forKey:@"_sex"];
NSLog(@"%@",[stu valueForKey:@"_sex"]);
//如果没有对应的实例变量
//通过KVC 设置值 需要重写setValue:forUndefinedKey:
[stu setValue:@180 forKey:@"_weight"];
//通过KVC 取值 需要重写valueForUndefinedKey:
NSLog(@"%@",[stu valueForKey:@"_weight"]);
//通过字典给我们的对象实例变量赋值
NSDictionary *dataDic = [[NSDictionary alloc] initWithObjectsAndKeys:@"金鹏",@"name",@"男",@"sex",@1002,@"number",@"180",@"wei",nil];
NSLog(@"%@",dataDic);
[stu setValuesForKeysWithDictionary:dataDic];
[stu sayHi];
NSLog(@"%@",stu.number);
//创建Teacher 对象
//给学生中老师实例变量 的实例变量name赋值
stu.teacher = [[Teacher alloc] init];
[stu setValue:@"西兰花" forKeyPath:@"teacher.name"];
NSLog(@"%@",[stu valueForKeyPath:@"teacher.name"]);
浙公网安备 33010602011771号