iOS runtime
文章平均质量分 82
depthlove1
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
刨根问底Objective-C Runtime(1)- Self & Super
前言关于Objective-C Runtime一篇好的文档 : Understanding the Objective-C Runtime译文地址为: http://blog.cocoabit.com/blog/2014/10/06/yi-li-jieobjective-cruntime/Objective-C Runtime源码是开源的,下载地址为: http://ope转载 2015-04-20 09:45:23 · 277 阅读 · 0 评论 -
轻松学习之二——iOS利用Runtime自定义控制器POP手势动画
前言苹果在IOS7以后给导航控制器增加了一个Pop的手势,只要手指在屏幕边缘滑动,当前的控制器的视图就会跟随你的手指移动,当用户松手后,系统会判断手指拖动出来的大小来决定是否要执行控制器的Pop操作。nav_pop_origin.gif这个操作的想法非常好,但是系统给我们规定的范围必须是屏幕左侧边缘才可以触发,这样实际使用过程中对于有些产品会产生不便,于是有些app就采取整个屏转载 2015-04-20 09:25:06 · 362 阅读 · 0 评论 -
Objective-C runtime-介绍 Method Swizzling 技巧及如何用 Swizzling 做 Logging
上一篇介绍了 Objective-C Messaging。利用 Objective-C 的 Runtime 特性,我们可以给语言做扩展,帮助解决项目开发中的一些设计和技术问题。这一篇,我们来探索一些利用 Objective-C Runtime 的黑色技巧。这些技巧中最具争议的或许就是 Method Swizzling 。介绍一个技巧,最好的方式就是提出具体的需求,然后用它跟其他的解决方法做转载 2015-04-20 09:57:16 · 336 阅读 · 0 评论 -
刨根问底Objective-C Runtime(2)- Object & Class & Meta Class
上一篇笔记讲述了objc runtime中Self 和 Super的细节,本篇笔记主要是讲述objc runtime中关于Object & Class & Meta Class的细节。习题内容下面代码的运行结果是?@interface Sark : NSObject@end@implementation Sark@endint main(int argc, const ch转载 2015-04-20 09:46:35 · 384 阅读 · 0 评论 -
Objective-C Runtime 运行时之二:成员变量与属性
在前面一篇文章中,我们介绍了Runtime中与类和对象相关的内容,从这章开始,我们将讨论类实现细节相关的内容,主要包括类中成员变量,属性,方法,协议与分类的实现。本章的主要内容将聚集在Runtime对成员变量与属性的处理。在讨论之前,我们先介绍一个重要的概念:类型编码。类型编码(Type Encoding)作为对Runtime的补充,编译器将每个方法的返回值和参数类型编码为一个字符串,转载 2015-04-20 10:06:46 · 395 阅读 · 0 评论 -
Objective-C Runtime 运行时之六:拾遗
前面几篇基本介绍了runtime中的大部分功能,包括对类与对象、成员变量与属性、方法与消息、分类与协议的处理。runtime大部分的功能都是围绕这几点来实现的。本章的内容并不算重点,主要针对前文中对Objective-C Runtime Reference内容遗漏的地方做些补充。当然这并不能包含所有的内容。runtime还有许多内容,需要读者去研究发现。super在Objective-转载 2015-04-20 10:10:59 · 341 阅读 · 0 评论 -
Objective-C Runtime 运行时之三:方法与消息
前面我们讨论了Runtime中对类和对象的处理,及对成员变量与属性的处理。这一章,我们就要开始讨论Runtime中最有意思的一部分:消息处理机制。我们将详细讨论消息的发送及消息的转发。不过在讨论消息之前,我们先来了解一下与方法相关的一些内容。基础数据类型SELSEL又叫选择器,是表示一个方法的selector的指针,其定义如下:typedef struct objc_selecto转载 2015-04-20 10:06:26 · 290 阅读 · 0 评论 -
Objective-C Runtime 运行时之一:类与对象
Objective-C语言是一门动态语言,它将很多静态语言在编译和链接时期做的事放到了运行时来处理。这种动态语言的优势在于:我们写代码时更具灵活性,如我们可以把消息转发给我们想要的对象,或者随意交换一个方法的实现等。这种特性意味着Objective-C不仅需要一个编译器,还需要一个运行时系统来执行编译的代码。对于Objective-C来说,这个运行时系统就像一个操作系统一样:它让所有的工作可以转载 2015-04-20 10:04:17 · 326 阅读 · 0 评论 -
刨根问底Objective-C Runtime(3)- 消息 和 Category
上一篇笔记讲述了objc runtime中Object & Class & Meta Class的细节,本篇笔记主要是讲述objc runtime的消息和Category。习题内容下面的代码会?Compile Error / Runtime Crash / NSLog…?@interface NSObject (Sark)+ (void)foo;@end@implement转载 2015-04-20 09:48:04 · 442 阅读 · 0 评论 -
Objective-C Runtime 运行时之五:协议与分类
Objective-C中的分类允许我们通过给一个类添加方法来扩充它(但是通过category不能添加新的实例变量),并且我们不需要访问类中的代码就可以做到。Objective-C中的协议是普遍存在的接口定义方式,即在一个类中通过@protocol定义接口,在另外类中实现接口,这种接口定义方式也成为“delegation”模式,@protocol声明了可以呗其他任何方法类实现的方法,协议仅仅是定转载 2015-04-20 10:09:50 · 366 阅读 · 0 评论 -
Objective-C Runtime 运行时之四:Method Swizzling
理解Method Swizzling是学习runtime机制的一个很好的机会。在此不多做整理,仅翻译由Mattt Thompson发表于nshipster的Method Swizzling一文。Method Swizzling是改变一个selector的实际实现的技术。通过这一技术,我们可以在运行时通过修改类的分发表中selector对应的函数,来修改方法的实现。例如,我们想跟踪在程序中每转载 2015-04-20 10:08:41 · 378 阅读 · 0 评论 -
Objective-C Runtime-深入介绍 Messaging 机制
Objective-CObjective-C 扩展了 C 语言,并加入了面向对象特性和 Smalltalk 式的消息传递机制。而这个扩展的核心是一个用 C 和 编译语言 写的 Runtime 库。它是 Objective-C 面向对象和动态机制的基石。Objective-C 是一个动态语言,这意味着它不仅需要一个编译器,也需要一个运行时系统来动态得创建类和对象、进行消息传递和转发。理解 O转载 2015-04-20 09:57:15 · 517 阅读 · 0 评论 -
刨根问底Objective-C Runtime(4)- 成员变量与属性
上一篇笔记讲述了objc runtime中消息和Category的细节,本篇笔记主要是讲述objc runtime的成员变量和属性。习题内容下面代码会? Compile Error / Runtime Crash / NSLog…?@interface Sark : NSObject@property (nonatomic, copy) NSString *name;@end转载 2015-04-20 09:51:11 · 382 阅读 · 0 评论 -
iOS 运行时添加属性和方法
第一种:runtime.h里的方法BOOL class_addProperty(Class cls, const char *name, const objc_property_attribute_t *attributes, unsigned int attributeCount)@implementation SomeClass- (id)init {转载 2015-04-20 09:42:50 · 394 阅读 · 0 评论 -
Objc Runtime
概述Objc Runtime使得C具有了面向对象能力,在程序运行时创建,检查,修改类、对象和它们的方法。Runtime是C和汇编编写的,这里http://www.opensource.apple.com/source/objc4/可以下到苹果维护的开源代码,GNU也有一个开源的runtime版本,他们都努力的保持一致。苹果官方的Runtime编程指南Runtime函数Runtime转载 2015-04-20 09:22:31 · 641 阅读 · 0 评论
分享