
RunTime
文章平均质量分 57
破落贵族
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
类外部访问私有成员变量
1、自己定义的一个类,里面有一个私有变量mt_,并且在初始化值为"call privite variable"。@interface Mobj : NSObject { @private NSString *mt_; } @end @implementation Mobj - (id)init { self =原创 2014-04-18 17:07:02 · 2083 阅读 · 0 评论 -
OC - Runtime
一、Objective-C多态1.概念:相同接口,不同的实现来自不同类可以定义共享相同名称的方法。动态类型能使程序直到执行时才确定对象所属类型动态类型绑定能使程序直到执行时才确定要对对象调用的实际方法2.Objective-C不同于传统程序设计语言,它可以再运行时加入新的数据类型和新的程序模块:动态类型识别,动态绑定,动态加载3.id类型:通用指针类型,弱类型,编译时不转载 2014-04-18 14:54:38 · 1991 阅读 · 0 评论 -
Runtime-动态创建类添加属性和方法
- (void)createClass{ Class MyClass = objc_allocateClassPair([NSObject class], "myclass", 0); //添加一个NSString的变量,第四个参数是对其方式,第五个参数是参数类型 if (class_addIvar(MyClass, "itest", sizeof(NSString *)原创 2014-04-18 17:00:06 · 2936 阅读 · 2 评论 -
Runtime-遍历类的成员名称和类型
1、创建一个Person类#import @interface Person : NSObject{ CGFloat height;}@property (nonatomic, strong) NSString *name;@property (nonatomic, assign) int age;@property (nonatomic, strong) N原创 2014-04-18 17:20:57 · 1814 阅读 · 0 评论 -
RunTime-消息的拦截与替换
1、创建一个类Person声明一个方法:- (void)talk;2、在vc中实例化person对象 并实现:- (void)talk2;3、实现replace函数可以将person调用的talk替换成talk2代码如下:- (void)replace{ Person *man = [[Person alloc] init]; man.name = @"成原创 2014-04-23 15:30:04 · 1762 阅读 · 0 评论 -
Runtime-动态添加方法
objc_getAssociatedObject(self, _cmd) objc_setAssociatedObject(self, _cmd, value, OBJC_ASSOCIATION_RETAIN_NONATOMIC);_cmd相当于当前方法的指针,类似self原创 2015-07-24 12:02:16 · 937 阅读 · 0 评论