240 发简信
IP属地:宁夏
  • 找茬--(类方法和实例方法有啥区别?)

    区别: self在实例方法中是对象的首地址;在类方法中是Class类 类方法存储在元类对象的方法列表中;实例方法存储在类对象的方法列表中 代码: objc_msgSend是通...

  • 120
    分类是如何添加到宿主类的

    分类是通过runtime在运行时加入到宿主类上的,具体可参见app的启动流程 分类结构体 分类入口函数 从对应的类中获取还没有拼接的所有分类 获取到Category的Prot...

  • 120
    程序加载过程

    程序加载时,会加载静态库、动态库和二进制可执行文件等,由此引出几个问题:问题1❓:什么是静态库?什么是动态库?二者的区别是什么?问题2❓:app加载流程是怎样的? 当app启...

  • 私有变量和私有方法的访问

    OC中没有绝对的私有变量和私有方法对于私有变量,例如在.h文件中使用@private修饰的变量;在.m文件中扩展中声明的变量和属性和方法默认都是@private私有的对于私有...

  • 120
    关联对象

    由于分类是不能直接添加成员变量的,因此需要使用关联对象技术为分类添加成员变量,由此引出几个问题:问题1❓:什么是成员变量,成员变量和实例变量还有属性的区别是什么?问题2❓:分...

  • UITableView重用机制原理及数据源同步处理

    重用机制 代码cell = [tableView dequeueReusableCellWithIdentifier:identifier]; 机制 系统会创建当前屏幕cel...

  • Block

    概念篇 什么是Block Block是就是一个对象,它封装了执行的函数和执行的上下文 Block就是将一个结构体实例赋值给一个函数指针 将一个结构体实例指针地址赋给一个 实现原理篇

  • ❓iOS中有哪些锁? @synchronized 一般在创建单例对象的时候使用,来保证在多线程环境下,创建对象是唯一的 atomic 修饰属性的关键字,对被修饰对象进行原子操...

  • 120
    散列表

    散列表的内存管理方案,在源码中是通过SideTables()结构来实现的, SideTables()中有很多SideTable数据结构, SideTables()实际是一个哈...