Runtime
文章平均质量分 91
iOS -> runtime
Morris_
个人笔记!
展开
-
早年间那些iOS面试题,不知道现在还有没有用?
runtime对NSObject的定义runtime对NSObject(见NSObject略...NSObject类中有一个Class类型的指针isa,也就是说OC对象都有一个指向该类的指针,即isa指针。runtime对Object的定义Class isa;- (id)init;略...runtime对对象的定义如上,对象也是有一个指向对象对应的类的isa指针。runtime对Class的定义Class对象其实是一个指向objc_class结构体的指针。原创 2024-05-31 09:00:21 · 839 阅读 · 0 评论 -
objc_msgSend()
objc_msgSend()是iOS runtime中重要的函数之一,用来做消息分发的,我们知道OC的消息调用,最终都是转成runtime的消息,然后分发出去的。当OC的方法被转成runtime的消息时,是个什么样子的呢?其实就是一些像objc_msgSend()这样的函数,runtime函数再往底层就是汇编了。引入头文件 #import <objc/message.h>例子UIColor *color = [UIColor colorWithRed:220/225.0 gr原创 2020-07-16 13:04:22 · 544 阅读 · 0 评论 -
runtime属性的读与写
文章目录通过ivar读、写举例通过ivar读、写这里以Person类为例,来看怎么对属性值进行操作。Person类有一个属性name@property (nonatomic, copy) NSString *name;对应的变量名_name@synthesize name = _name;p是实例化的一个对象。需要引入runtime头文件<objc/runtime.h&...原创 2020-04-30 11:10:14 · 172 阅读 · 0 评论 -
KVO
KVO概述KVO,即Key Value Observer,键值观察者模式,是一种设计模式。在iOS中,一个对象可以监听另一个对象某个属性值的变化。KVO和NSNotificationCenter都是iOS中观察者模式的一种实现。区别在于,相对于被观察者和观察者之间的关系,KVO是一对一的,而NSNotificationCenter是一对多的。KVO对被监听对象无侵入性,不需要修改其内部代码即...原创 2020-03-16 19:50:26 · 115 阅读 · 0 评论 -
runtime.h-Functions-Working with Classes (二)
文章目录Working with Classes (二)class_getIvarLayoutclass_getWeakIvarLayoutclass_addMethodclass_replaceMethodclass_addIvarclass_addProtocolclass_addPropertyclass_replacePropertyclass_setIvarLayoutclass_set...原创 2020-03-11 12:13:36 · 153 阅读 · 0 评论 -
runtime.h-Functions-Obtaining Class Definitions
文章目录Obtaining Class Definitionsobjc_getClassobjc_getMetaClassobjc_lookUpClassobjc_getRequiredClassobjc_getClassListobjc_copyClassListObtaining Class Definitionsobjc_getClassOBJC_EXPORT Class _Nulla...原创 2020-03-08 12:07:54 · 164 阅读 · 0 评论 -
runtime.h-Functions-Working with Instances
文章目录object_copyobject_disposeobject_getClassobject_setClassobject_isClassobject_getIvarobject_setIvarobject_setIvarWithStrongDefaultobject_setInstanceVariableobject_setInstanceVariableWithStrongDefaul...原创 2020-03-08 12:05:33 · 196 阅读 · 0 评论 -
runtime.h - Types
文章目录objc_methodobjc_ivarCategoryobjc_property_tobjc_classProtocolobjc_method_descriptionobjc_property_attribute_tobjc_method/// An opaque type that represents a method in a class definition.typedef...原创 2020-03-08 11:56:44 · 161 阅读 · 0 评论 -
类对象、实例对象、isa指针
文章目录实例对象类对象(Class)元类对象(Metaclass)关于isa指针isa概述实例对象的isa指针指向类对象类对象的isa指针指向元类元类对象的isa指向根元类举例推荐阅读在iOS开发中可能会遇到这样的问题,什么是类对象,它和实例对象有什么区别?实例对象首先我们来看看经常使用到的实例对象。什么是实例?站在面向对象的角度上说,实例是一个抽象类具体的某个对象。由一个类实例化来的对...原创 2020-03-06 22:47:41 · 668 阅读 · 2 评论 -
objc.h
文章目录objc.h头文件阅读Classobjc_objectSELIMP一些函数定义方法总结objc.h头文件阅读ClassClass在Runtime中的定义:/// An opaque type that represents an Objective-C class.typedef struct objc_class *Class;可以看到Class是一个objc_class...原创 2020-03-06 11:18:50 · 341 阅读 · 0 评论 -
message.h
文章目录message.h概述objc_superobjc_msgSend、objc_msgSendSuperobjc_msgSend_stret、objc_msgSendSuper_stretobjc_msgSend_fpretmethod_invoke、method_invoke_stret_objc_msgForward、_objc_msgForward_stretobjc_msgSendv...原创 2020-03-05 16:07:14 · 663 阅读 · 0 评论 -
NSObject.h
文章目录NSObject.h概述performSelectorIMP指针使用判断方法其他方法NSObject.h概述@protocol NSObject...@end对NSObject协议的定义。我们知道NSObject不仅是一个类而且是一个同名的协议。@interface NSObject <NSObject> {#pragma clang diagnostic...原创 2020-03-04 11:57:17 · 341 阅读 · 0 评论 -
NSObjCRuntime.h
NSObjCRuntime.h#if __LP64__ || TARGET_OS_WIN32 || NS_BUILD_32_LIKE_64typedef long NSInteger;typedef unsigned long NSUInteger;#elsetypedef int NSInteger;typedef unsigned int NSUInteger;#endif这...原创 2020-03-04 11:54:54 · 237 阅读 · 0 评论 -
runtime学习笔记
文章目录前言阶段一 Runtime源码阅读Public Headers前言在苹果开源网站上可以下载到Runtime源代码。之前通过网友的博客对Runtime有所了解,项目里也有所应用,但是对有些东西总是感觉模棱两可,所以没事的时候看看源码学习学习还是很有必要的。下面就是我看源码和查阅资料进行学习整理的笔记。阶段一 Runtime源码阅读初次下载学习可能会感觉无从下手,就从“Public...原创 2020-03-04 11:53:03 · 583 阅读 · 0 评论