runtime学习笔记】的更多相关文章

0.简介: OC方法不同于C语言函数,属于动态调用过程,在编译的时候并不能决定真正调用哪个函数,只有在真正运行的时候才会根据函数的名称找到对应的函数来调用. 至于其他理论上的东西不必讲太多,编程讲的就是实用性,只记录一下各种使用场景. 使用运行时:(1)导入<objc/message.h> (2)Build Setting -> 搜索msg -> 设置属性为No(取消消息机制的检查) 一般见人写runtime第一个必讲消息机制,发消息是怎么回事 比如:新建一个dog类,头文件定义三…
获取属性objc_property_t * propertys = class_copyPropertyList(clazz, &outCount); 获取属性名NSString * key = [NSString stringWithCString:property_getName(property) encoding:NSUTF8StringEncoding]; 获取属性的描述NSString * attributesString = [NSString stringWithCString:…
Associated Objects: @interface NSObject (AssociatedObject) @property (nonatomic, strong) id associatedObject; @end @implementation NSObject (AssociatedObject) @dynamic associatedObject; - (void)setAssociatedObject:(id)object { objc_setAssociatedObjec…
1) 当向某个对象发送消息时,先从cache(cache_t)中查找方法对象(method_t),如果找到则进行回调:否则通过查找对象的类(元类)定义中方法列表,一直追溯到NSObject, 如果找到则回调,如果没有找到则调用 resolveInstanceMethod: / resolveClassMethod: 返回一个BOOL 值,可以覆盖此方法动态添加方法,如果没有则调用 forwardingTargetForSelector: 尝试返回一个实现了此方法的对象,如果返回空,则尝试调用完整…
atomic修饰的是变量/方法,对于可变对象的指针变量是安全的,内部实现加了锁,但是对可变对象本身没什么影响,不安全还是不安全.另外atomic仅仅对编译器生产的getter.setter有效,如果自定义了getter.setter则还需要自己加锁.可以使用OSAtomicXXX函数来进行正数操作或者GCC的buildin函数来进行原子操作. 如果没有实现自定义的getter / setter,实际上iOS 调用了 objc_getProperty_non_gc / reallySetPrope…
1.结构 struct magic_t {     /* 魔法 */     static const uint32_t M0 = 0xA1A1A1A1; #   define M1 "AUTORELEASE!"     static const size_t M1_len = 12;     uint32_t m[4]; /* 省略各种方法 */ #   undef M1 }; /* AutotRelease 重要:重载了new和delete运算符号,使每个Page对象固定大小 */…
1.OC 运行期常用对象结构体 基本的结构体定义 typedef objc_class Class; /* 类 */ typedef objc_object *id; /* 各种类型,只要第一个字段为isa_t 即可,兼容Class */ 1.2) isa_t 联合体定义 union isa_t  { Class cls;   uintptr_t bits; /* unsigned long 无符号长整形,8个字节 */ #if SUPPORT_NONPOINTER_ISA # if __arm…
本文为<Flink大数据项目实战>学习笔记,想通过视频系统学习Flink这个最火爆的大数据计算框架的同学,推荐学习课程: Flink大数据项目实战:http://t.cn/EJtKhaz 1. Flink运行时架构 1.1Flink架构 Flink 运行时架构主要包含几个部分:Client.JobManager(master节点)和TaskManger(slave节点). Client:Flink 作业在哪台机器上面提交,那么当前机器称之为Client.用户开发的Program 代码,它会构建…
什么是注解 注解可以看作类的第6大要素(成员变量.构造器.方法.代码块.内部类) 注解有点像修饰符,可以修饰一些程序要素:类.接口.变量.方法.局部变量等等 注解要和对应的配套工具(APT:Annotation Processing Tool)一起使用,APT会对含有注解进行一些处理 比如API文档里面,有些方法下边的"@Deprecated",就是一个注解,它表示这个方法已经过时,使用的时候会收到警告 注解完全不影响程序的功能 元注解 元注解有6个,位于java.lang.annot…
目录 WeX5学习笔记... 1 1.轻松看透WeX5产品能力和技术... 1 2.WeX5可以怎么玩?... 3 一.纯本地App. 3 二.关联一个网站,希望默认就打开某页... 4 三.UI设计器... 4 四.打包神器... 4 五.标准玩法... 4 3.WeX5 App与服务端交互原理... 4 4.Account示例程序... 5 5.Takeout示例程序... 7 5.1Index.w.. 7 5.2mapActivity.w.. 13 问题... 13 6.页面间交互视频..…