美文网首页iOS学习
class_addProperty运行时方法

class_addProperty运行时方法

作者: yu_briebook | 来源:发表于2017-02-27 16:57 被阅读0次

static char *propertykey = nil;

NSString *getterMeth(id self, SEL _cmd) {

Ivar ivar = class_getInstanceVariable([SomeClass class],propertykey );

return object_getIvar(self, ivar);

}

void setterMeth(id self, SEL _cmd, NSString *name) {

Ivar ivar = class_getInstanceVariable([SomeClass class], propertykey);

id oldName = object_getIvar(self, ivar);

if (oldName != ame) object_setIvar(self, ivar, [name copy]);

}

int main(void) {

propertykey = "_privaName";

@autoreleasepool {

objc_property_attribute_t types = { "T", "@\"NSString\"" };

objc_property_attribute_t ownership = { "C", "" }; // C = copy

objc_property_attribute_t backIvar  = { "V", "_privateName" };

objc_property_attribute_t attrs[] = { types, ownership, backIvar };

class_addProperty([SomeClass class], "name", attrs, 3);

class_addMethod([SomeClass class], @selector(name), (IMP)nameGetter, "@@:");

class_addMethod([SomeClass class], @selector(setName:), (IMP)nameSetter, "v@:@");

id o = [SomeClass new];

NSLog(@"%@", [o name]);

[o setName:@"your Name"];

NSLog(@"%@", [o name]);

}

}

相关文章

  • class_addProperty运行时方法

    static char *propertykey = nil; NSString *getterMeth(id s...

  • 多态

    1. 什么是运行时多态? 运行时多态或动态多态是运行时存在的多态。 如果方法被重写,则在运行时将调用哪个方法是未知...

  • MY_Runtime机制

    Runtime: 运行时机制 OC语言就是运行时机制, 在编译时不检测调用那个方法, 在运行时进行调用方法 ( 一...

  • class_addProperty方法中的objc_proper

    今天做了一下runtime相关的东西,踩了一个坑,记录一下。 先看这段代码: 上面的代码可以在运行时给一个类添加新...

  • 运行时Hook所有Block方法调用的技术实现

    运行时Hook所有Block方法调用的技术实现 运行时Hook所有Block方法调用的技术实现

  • iOS中Method Swizzling-坑点总结

    什么是Method Swizzling 实际上是方法交换。OC是个运行时语言,允许我们运行时修改方法,可以进行方法...

  • 多态

    ###多态 *编译器多态-方法重载 方法名称相同方法参数不同。 *运行时多态 - 在程序运行时判断到底是那个类(父...

  • 虚拟机的方法调用和字节码执行

    目录 一、运行时栈帧结构二、方法调用三、方法执行 一、运行时栈帧结构 栈帧是用于支持虚拟机进行 方法调用 和 方法...

  • 1. java内存区域与内存溢出异常

    概述 运行时数据区域 java虚拟机在运行时有包含一下几个运行时的数据区域: 方法区 堆 虚拟机栈 本地方法栈 程...

  • Android Studio插件

    Hugo插件 - 查看方法运行时间 可以查看方法运行时间的一款插件 由大神JakeWharton开发 插件地址 h...

网友评论

    本文标题:class_addProperty运行时方法

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