zoukankan      html  css  js  c++  java
  • setValue forkey 的基本用法

    当一个类中定义一个实例变量时,没有给实例变量提供限时属性(默认是protected),而且在声明和实现文件中也没有给这个实例变量

    设置getter和setter的方法。

    那么一般情况下这个实例变量是不能被赋值和得到的。

    但是KVC可以通过setValue方法给类名赋值并且提取出来;

    假设 _name为student类中的实例变量,并且没有提供getter和setter方法

    student *stu = [student alloc]init];                     //给stu实例对象分配并且初始化

    [stu setValue:@"kyrie" forKey;@"_name"];         //给stu实例对象中名字叫做_name的实例变量进行赋值赋值为(kyrie)

    NSString *mingzi = [stu valueForKey:@"_name"];//通过valueForKey方法提取出_name中的值赋值给mingzi

    NSlog(@"%@",mingzi);

    最后输出结果为kyrie。

    2、如果访问这个类里中的属性中的属性呢?那就用到了键路径 

    setValue:<#(id)#> forKeyPath:<#(NSString *)#>

    属性中的属性使用点

    例如,student继承NSObject 而Cstudent继承student 

    student{

    NSStirng * number;

    }

    Cstudent

    {

    number * classnumber;

    }

    那么键路径使用方法就是number.classnumber.

    基本使用方法跟上面的方法一致。

    [student setValue:@"数学课" forKeyPath:@"course.CourseName"];
            courseName = [student valueForKeyPath:@"course.CourseName"];
            NSLog(@"课程名称:%@", courseName);
            
  • 相关阅读:
    MySQL之pymysql模块
    MySQL之用户管理
    MySQL之正则
    MySQL之流程控制
    MySQL之备份恢复
    MySQL之函数
    安卓 adb命令
    js DOM事件
    js DOM
    js 流程控制语句
  • 原文地址:https://www.cnblogs.com/naizui/p/5065045.html
Copyright © 2011-2022 走看看