240 发简信
IP属地:陕西
  • 120
    iOS面试题:为什么Objective-C中有MetaClass这个设计?

    前置知识 首先简单分析下在Objective-C中,对象是什么。下面源码基于Runtime-709[https://opensource.apple.com/tarballs...

  • 赞同,metaclass 使用 class 的设计,感觉更丝滑。

    iOS面试题:为什么Objective-C中有MetaClass这个设计?

    前置知识 首先简单分析下在Objective-C中,对象是什么。下面源码基于Runtime-709[https://opensource.apple.com/tarballs...

  • @akzhang6666 暂时不适合公开哈,抱歉

    RTL适配历程

    背景 阿拉伯语适配是一个比较麻烦的事情,不止在于它文案的适配,更多的是在于其语言习惯的变化。由从左到右(LeftToRight)的布局习惯变为了从右向左(RightToLef...

  • 120
    OOM探究:XNU 内存状态管理

    前言 OOM全称 Out Of Memory,指的是因为内存使用过多而导致的 APP 闪退。其实这本身是一种操作系统管理内存的机制。因为手机的内存是有限的,不可能无限制的使用...

  • 重建window

    RTL适配历程

    背景 阿拉伯语适配是一个比较麻烦的事情,不止在于它文案的适配,更多的是在于其语言习惯的变化。由从左到右(LeftToRight)的布局习惯变为了从右向左(RightToLef...

  • 关于Block的几点思考

    背景 block的问题算是老生常谈了,本以为对block很熟悉了,但是前几天跟同事聊到几个block的很有意思的点,一开始还真的感觉一脸懵逼。想了很久才想出来自以为能解释的原...

  • AVFoundation的一本书,你去京东搜索AVFoundation就能找到

    AVFoundation(二):核心AVAsset

    AVFoundation是一个对多媒体操作的库。多媒体一般以文件或者流的形式存在,显而易见,直接对多媒体进行操作并不是一件愉快的事,这需要我们了解很多底层多媒体方面的知识。A...

  • 从效率上来说,在+load 和+initialize里执行同样的代码,效率是一样的,即使有差距,也不会差距太大。
    但所有的+load 方法都在启动的时候调用,方法多了就会严重影响启动速度了。就说我们项目中,有200个左右+load方法,一共耗时大概1s 左右,这块就会严重影响到用户感知了。
    而+initialize方法是在对应 Class 第一次使用的时候调用,这是一个懒加载的方法,理想情况下,这200个+load方法都使用+initialize来代替,将耗时分摊到用户使用过程中,每个方法平均耗时只有5ms,用户完全可以无感知。

    WWDC之优化App启动速度

    前言 在WWDC 2016上首次提到了关于App应用启动速度优化的话题:Session 406 Optimizing App Startup Time .该Session上A...

  • 抱歉,暂时不考虑哈

    RTL适配历程

    背景 阿拉伯语适配是一个比较麻烦的事情,不止在于它文案的适配,更多的是在于其语言习惯的变化。由从左到右(LeftToRight)的布局习惯变为了从右向左(RightToLef...

  • RTL适配历程

    背景 阿拉伯语适配是一个比较麻烦的事情,不止在于它文案的适配,更多的是在于其语言习惯的变化。由从左到右(LeftToRight)的布局习惯变为了从右向左(RightToLef...

  • iOS启动原理(一)

    背景 iOS的启动过程一直比较神秘,这方面的资料也不是太多,大多数的资料都来自2016年WWDC的一篇视频,本文的大部分内容来自于视频,算是视频的一个归纳总结再加上自己的一点...

  • atomic后setter和getter是安全的

    谈nonatomic非线程安全问题

    背景 由于我对SDWebImage这块比较熟悉,并且基于SDWebImage封装了一层对业务更友好的HTSWebImage库。所以一直以来SDWebImage的相关Crash...

  • 公司内部的库,跟业务比较耦合,暂时没法开源

    谈nonatomic非线程安全问题

    背景 由于我对SDWebImage这块比较熟悉,并且基于SDWebImage封装了一层对业务更友好的HTSWebImage库。所以一直以来SDWebImage的相关Crash...

  • 这里应该是等待sync自己的block执行完成之后,sync就可以继续往下执行了

    小笨狼漫谈多线程:GCD(一)

    多线程是程序开发中非常基础的一个概念,大家在开发过程中应该或多或少用过相关的东西。同时这恰恰又是一个比较棘手的概念,一切跟多线程挂钩的东西都会变得复杂。如果使用过程中对多线程...

  • getter和setter是线程安全的。真正对象的使用又是另一回事了

    谈nonatomic非线程安全问题

    背景 由于我对SDWebImage这块比较熟悉,并且基于SDWebImage封装了一层对业务更友好的HTSWebImage库。所以一直以来SDWebImage的相关Crash...

  • @zhiyiLiu 这是卓立提的pr,还没有合进去。crash的原因也是他发现的,我只是借花献佛。在没有点破之前,crash的原因真是很难想到

    谈nonatomic非线程安全问题

    背景 由于我对SDWebImage这块比较熟悉,并且基于SDWebImage封装了一层对业务更友好的HTSWebImage库。所以一直以来SDWebImage的相关Crash...

  • @大灰灰iOS 各种锁性能应该有不少人做过对比了,你可以搜一下

    谈nonatomic非线程安全问题

    背景 由于我对SDWebImage这块比较熟悉,并且基于SDWebImage封装了一层对业务更友好的HTSWebImage库。所以一直以来SDWebImage的相关Crash...