美文网首页
iOS runtime笔记一

iOS runtime笔记一

作者: 黑羽肃霜 | 来源:发表于2016-09-10 23:36 被阅读149次

参考资料

南峰子的runtime 一
【OC刨根问底】Runtime简单粗暴理解

对象的理解,元类(meta class)isa

iOS机制中,对象包括:类对象和实例对象

  • 实例对象
    • 对于实例对象,isa是在分配内存等初始化操作的时候创建的.分配内存的时候创建了一个结构体,objc_objcet,体内有一个isa指针,指向本对象所属的类(或者说类对象),同时生成的id指针指向自己。
  • 类对象
    • 所有的类本身也是一个对象,类对象所属的类,叫做元类 meta class, isa指向meta class
    • 类中所有的方法,包括实例化方法和类方法,都存放在meta class中, meta classisa最终指向根类的meta class
    • NSObjectmeta class指向本身
  • 这里需要注意的是:我们在一个类对象调用class方法是无法获取meta-class,它只是返回类而已。
  • 参照下图,


    示意图

示例说明

[[NSObject alloc] init]

  • NSObject是一个类对象, + alloc是一个类方法, [NSObject alloc] isa先找到NSObjectmeta class中有没有alloc方法.
  • [[NSObject alloc]返回了一个实例化对象. isa就指向了这个对象所属的类,还是NSObject,去找有没有init方法。

相关文章

  • iOS runtime 笔记总览

    个人已掌握的知识点 runtime的一些综述iOS runtime笔记一iOS runtime 笔记二 — Met...

  • iOS~runtime

    iOS~runtime理解iOS runtime学习笔记Objective-C Runtime让你快速上手Runt...

  • iOS

    @(03.自己的笔记)[iOS] [TOC] iOS Runtime OC_runtime运行时官方文档翻译 NS...

  • OC博客文章整理收集

    runtime: 1、ios开发教程之 runtime笔记http://www.kuqin.com/shuoit/...

  • IOS学习笔记--RunTime的理解

    IOS学习笔记--RunTime的理解 RunTime的理解 runtime:运行时刻是指一个程序在运行(或者在被...

  • iOS runtime(三)runtime之method(1)m

    iOS runtime(一)runtime之Property 详尽iOS runtime(二)runtime之Iv...

  • iOS Runtime学习笔记(一) - 基础学习

    iOS Runtime学习笔记 Runtime就是运行时, 核心就是消息机制. 对OC的函数调用,是一个动态调用过...

  • iOS runtime 运行时( - 俗谈)

    iOS runtime 运行时( - 俗谈)iOS runtime 运行时( 二 深谈)iOS runtime 运...

  • iOS runtime笔记一

    参考资料 南峰子的runtime 一【OC刨根问底】Runtime简单粗暴理解 对象的理解,元类(meta cla...

  • Runtime

    kyson老师 iOS开发之runtime(1):runtime调试环境搭建iOS开发之runtime(2):浅析...

网友评论

      本文标题:iOS runtime笔记一

      本文链接:https://www.haomeiwen.com/subject/qfcuettx.html