Runtime的使用5 【对私有变量的修改】
来源:互联网 发布:软件定制化开发 编辑:程序博客网 时间:2024/06/05 03:47
首先我们创建一个Person类。
属性name 、方法publicMethod是公共的。
属性address、方法privateMethod是私有的。
@interface Person : NSObject@property (nonatomic,copy) NSString *name;//公共的- (void)publicMethod;@end
#import "Person.h"@interface Person()@property (nonatomic,copy) NSString *address;@end@implementation Person- (instancetype)init { self = [super init]; if (self) { _address = @"私有属性北京"; self.name = @"孟孟"; } return self;}//公共方法- (void)publicMethod { NSLog(@"对外暴露的方法 %@",self.address);}//私有方法- (void)privateMethod { NSLog(@"私有方法%@",self.name);}//重写了系统的description方法。- (NSString *)description { return [NSString stringWithFormat:@" %@, %@",self.address,self.name];}@end
然后我们对私有变量进行修改。比如修改私有属性address的值。
#pragma mark - 对私有变量的更改- (void)changePrivate { Person *onePerson = [[Person alloc] init]; NSLog(@"Person属性 == %@",[onePerson description]); //屌日的这是重写了。 unsigned int count = 0; Ivar *members = class_copyIvarList([Person class], &count); for (int i = 0; i < count; i++){ Ivar var = members[i]; const char *memberAddress = ivar_getName(var); const char *memberType = ivar_getTypeEncoding(var); NSLog(@"获取所有属性 = %s ; type = %s",memberAddress,memberType); } //对私有变量的更改 Ivar m_address = members[1]; object_setIvar(onePerson, m_address, @"上海"); NSLog(@"对私有变量的(地址)进行更改 : %@",[onePerson description]); }
阅读全文
0 0
- Runtime的使用5 【对私有变量的修改】
- 使用指针在类外修改类的私有变量
- iOS runtime访问/修改私有变量
- RunTime应用--对私有变量进行更改
- JS私有变量的使用。。。
- 类--对私有变量、私有方法的理解
- 有关python私有变量使用的例子
- JavaScript中私有变量的使用
- 私有变量的使用:从传值到传引用
- Java反射——对类内部函数、私有变量和构造函数的使用举例
- 从一个修改私有变量的问题想到的
- 从一个修改私有变量的问题想到的
- 从一个修改私有变量的问题想到的
- runtime获取属性列表,修改属性值,添加并修改私有方法的调用
- 通过指针修改C++类的私有变量
- 利用.net反射机制修改对象的私有变量
- java反射修改类的私有成员变量
- Python的私有变量
- python list删除操作
- springboot排除模板文件或静态文件修改时导致的热部署
- IOS UITableView 加载未知宽高图片的解决方案
- HTTP基础:URL格式、 HTTP请求、响应、消息
- C#中String类 --> "检索","截取"等几个方法(IndexOf、LastIndexOf、Substring)
- Runtime的使用5 【对私有变量的修改】
- 小a和uim之大逃离
- 文档型漏洞攻击研究报告
- poj1287
- 编程之战第十三章 弹力球问题
- 6/30作业:接口继承接口
- Hyperledger Fabric 架构解析
- HDU 3263(Ancient vending machine-井盖问题)
- 程序员词汇