240 发简信
IP属地:上海
  • Resize,w 360,h 240
    内存管理-(四)弱引用表

    Q: 一个weak修饰的变量时怎么被加入到弱引用表中的?来看一个代码块: 我们先来看看objc_initWeak调用了什么方法。 我们从源码可以...

  • 内存管理-(二)ARC

    Q: 什么是ARC? ARC是由编译器(LLVM)为我们自动插入retain、release之外还需要Runtime协作最终组成了ARC。 AR...

  • 内存管理-(三)MRC

    iOS中的内存管理,涉及到这么几个方法 alloc retain release retainCount autorelease dealloc...

  • Resize,w 360,h 240
    内存管理-(一)内存管理基础知识

    先来了解一下iOS中的内存布局。 上面的图代表的是内存区域,最上方是内核区,最下面是保留的内存空间。中间位置是给程序加载使用的空间。程序被加载到...

  • Runtime-(七)动态添加方法

    在说动态添加方法之前,我们先来看一个问题 Q: 使用performSelector:可能会遇到什么问题? 这个方法不会检查对象的方法实现,所以可...

  • Runtime-(六)Method-Swizzling

    Q: 什么是Method-Swizzling? 实际上就是交换两个方法的实现! 实际上实现起来很简单 这样两个方法的实现就被交换了。

  • Runtime-(五)消息转发流程

    我们先来看看实例方法的消息转发流程 这里来说明一下流程 先调用resolveInstanceMethod:这个类方法,告诉系统我们是否需要通过消...

  • Resize,w 360,h 240
    Runtime-(四)方法缓存

    方法缓存的查找流程,实际上就是按照给定的SEL,在方法缓存列表中找到对应的bucket_t中的IMP。对应的流程就是: 我们通过给定的方法映射出...

  • Resize,w 360,h 240
    Runtime-(三)消息传递机制

    我们知道在OC中,所有的方法调用最终都会转换成objc_msgSend形式的方法调用。如下图: 而对于调用父类的方法,用的是另一个方法objc_...