
OC之Runtime机制
文章平均质量分 82
chris-gardner
这个作者很懒,什么都没留下…
展开
-
OC学习之Runtime之一类与对象
坚持 成长 每日一篇Objective-C语言是一门动态语言,它将很多静态语言在编译和链接时期做的事放到了运行时来处理。这种动态语言的优势在于:我们写代码时能够更具灵活性,如我们可以把消息转发给我们想要的对象,或者随意交换一个方法的实现等。(个人认为这样有优点也有缺点,就是在很多错误会在运行时候才被发现,与C#等可以在编译时候就发现程序的错误,OC这个也算是缺点吧)OC通过一个运行时系统即runti原创 2015-09-14 11:41:30 · 582 阅读 · 0 评论 -
OC学习之Runtime之一成员变量和属性
坚持 成长 每日一篇OC的成员变量和属性成员变量:就是定义了一个类的全局变量(不直接被外部访问,只能通过方法读或写) 属性:提供了get和set的成员变量。(直接能被外部读写,其实就是能通过.调用法读或写)由此可知:在OC里面一个属性是和一个成员变量密切相关联的。当我们默认声明一个属性如果没有关联相应的成员变量会默认生成一个以下划线开头+属性名的成员变量。原创 2015-09-14 15:59:07 · 2530 阅读 · 0 评论 -
OC学习之Runtime之关联对象
坚持 成长 每日一篇前言在Runtime中有一个我们经常忽略的特性就是关联对象特性。 关联对象类似于成员变量,不同的是关联对象是在类创建实例后添加进去的。所以不能通过Runtime的获取成员变量的方法获取相关信息。 注意:对关联函数的操作只能通过下面的C函数进行操作。// 设置关联对象 void objc_setAssociatedObject ( id object, const void原创 2015-09-15 10:06:33 · 1630 阅读 · 0 评论 -
OC学习Runtime之协议与分类
坚持 成长 每日一篇OC提供分类为已有的类进行扩展,提供协议来定义接口。基本数据类型Category分类:允许我们通过给一个类添加方法来扩充它(但是通过category不能添加新的实例变量),并且我们不需要访问类中的代码就可以做到。分类在OC的定义为CategoryCategory是表示一个指向分类的结构体objc_category的指针,其定义如下:typedef struct objc_cate原创 2015-09-23 12:35:13 · 595 阅读 · 0 评论 -
OC学习Runtime之补充
坚持 成长 每日一篇super在Objective-C中,如果我们需要在类的方法中调用父类的方法时,通常都会用到super,如下所示:@interface MyViewController: UIViewController@end@implementation MyViewController- (void)viewDidLoad { [super viewDidLoad]; //原创 2015-09-23 13:37:34 · 609 阅读 · 0 评论 -
OC学习Runtime之消息传递,消息转发机制
坚持 成长 每日一篇原创 2015-09-22 10:48:59 · 4689 阅读 · 0 评论 -
OC学习Runtime之Method swizzling
坚持 成长 每日一篇OC的一些黑魔法除了关联对象(associated objects)还有一个比较争议的方法交换(Method swizzling)Method swizzling指的是改变一个已存在的选择器对应的实现的过程,它依赖于Objectvie-C中方法的调用能够在运行时进改变——通过改变类的调度表(dispatch table)中选择器到最终函数间的映射关系。这个黑魔法我们在之前其实已经原创 2015-09-23 10:24:47 · 620 阅读 · 0 评论 -
iOS学习之利用关联对象让类别有添加属性效果
坚持 成长 每日一篇类别和分类的区别类别和分类是极其相似的,都是给为类添加拓展,我们可以简单区分为没有名字的类别(Category)是分类 1.我们可以给分类添加属性,不能给类别添加属性。 2.类别有实现部分,分类没有实现部分。分类的定义:@interface ClassName ()@property(nonatomic,readwrite,copy) NSString *name;@en原创 2015-12-29 17:29:11 · 1085 阅读 · 0 评论 -
OC学习Runtime之方法
坚持 成长 每日一篇苹果官方文档查找地址:https://developer.apple.com/library/mac/navigation/ Runtime官方文档https://developer.apple.com/library/mac/documentation/Cocoa/Reference/ObjCRuntimeRef/index.html 基础数据类型 SELSEL:选择器,表示原创 2015-09-21 16:18:09 · 1485 阅读 · 0 评论