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

相關文章
相關標籤/搜索