KVC

        //建立Person 对象对象

        Person *per = [[Person alloc] initWithName:@"张三" sex:@"男" age:@21];get

                       

        //setter getterit

        [per setName:@"达芬奇"];io

        [per setSex:@"?"];变量

        [per setAge:@123];语法

        NSLog(@"%@",per);字典

        

        //建立Teacher 对象data

        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"]);

相关文章
相关标签/搜索