美文网首页ios runtime专题
Runtime | 改变实例变量值

Runtime | 改变实例变量值

作者: 字符管理师 | 来源:发表于2019-08-04 21:13 被阅读0次

准备工作/生成一个Person类并定义一个属性name

@property (nonatomic, copy) NSString* name;

控制器中初始化Person

- (void)viewDidLoad {
    [super viewDidLoad];
    self.persion = [[Persion alloc] init];
    self.persion.name = @"Runya";
    NSLog(@"%@", self.persion.name);
}

使用runtime改变实例成员的值

- (void) rylsj_changeVarName {
    /// 实例变量个数
    unsigned int count = 0;
    /// 获取所有的实例变量
    Ivar* ivar = class_copyIvarList([self.persion class], &count);
    /// 遍历
    for (int i = 0; i < count; i++) {
        /// 实例变量
        Ivar var = ivar[i];
        /// 实例变量名字
        const char * varName = ivar_getName(var);
        /// 转换成OC语音形式的
        NSString* name = [NSString stringWithUTF8String:varName];
        if ([name isEqualToString:@"_name"]) {
            object_setIvar(self.persion, var, @"RunyaLsj");
            break;
        }
    }
}

相关文章

  • iOS runtime常用功能

    修改变量值 用runtime方法修改变量值,相当于赋值语句,主要原理是遍历类的IvarList,找到名字相同的实例...

  • Runtime | 改变实例变量值

    准备工作/生成一个Person类并定义一个属性name 控制器中初始化Person 使用runtime改变实例成员的值

  • runtime基本用法

    先导入 runtime 头文件。1、用 runtime 改变变量值; 2、使用 runtime 交换方法; 3、使...

  • runtime的用法

    1.使用runtime改变变量值 2.使用runtime交换方法 3.使用runtime添加方法 4.使用runt...

  • runTime常用方法

    使用runTime改变实例成员的值 使用runtime来交换两个方法 注意再次调用该方法不交换 使用runTime...

  • iOS RunTime之四:实例及实现分析

    看看别人都在用runtime做什么? 实例001:iOS中利用 runtime 一键改变字体 知识点: 利用Met...

  • block特性:截取自动变量值

    blcok是带有自动变量值的匿名函数."带有自动变量值"在block中表现为"截取自动变量值".实例如下 int ...

  • iOS-runtime的基本用法

    iOS runtime基本用法 本内容为作者原创, 未经允许, 不得用于商业用途 我的blog 一. 改变实例变量...

  • Learn Runtime

    Runtime 参考资料: RunTime应用实例--关于埋点的思考 使用Runtime进行埋点操作-Demo...

  • 码农必备干活:Java编码——高效代码汇总小技巧

    一. 常量&变量 1.1 当成员变量值无需改变时,尽量定义为静态常量 在类的每个对象实例中,每个成员变量都有一份副...

网友评论

    本文标题:Runtime | 改变实例变量值

    本文链接:https://www.haomeiwen.com/subject/qhqudctx.html