该文章属于刘小壮原创,转载请注明:刘小壮[https://www.jianshu.com/u/2de707c93dc4] attribute __attribute__是一套...
该文章属于刘小壮原创,转载请注明:刘小壮[https://www.jianshu.com/u/2de707c93dc4] 当一个对象的方法被调用时,首先在对象所属的类中查找方...
该文章属于刘小壮原创,转载请注明:刘小壮[https://www.jianshu.com/u/2de707c93dc4] 本文基于objc-723版本,在Apple Gith...
该文章属于刘小壮原创,转载请注明:刘小壮[https://www.jianshu.com/u/2de707c93dc4] Runtime是iOS系统中重要的组成部分,面试也是...
不同系统的数据访问模式不尽相同,同一种缓存策难以在各种数据访问模式下均取得满意性能,因此不同缓存策略以适应不同需求。 缓存策略 缓存策略可分为以下几类: 基于访问时间: 此类...
题目:已知下面Stack类及其3个方法Push、Pop和Count,请用2个Stack实现Queue类的入队(Enqueue)出队(Dequeue)方法。 思路:s1作为存储...
leetcode题目链接 题目描述 Given a binary tree, find the maximum path sum.给出一棵二叉树,计算其最大路径和。The p...
题目描述:输入一个整型数组,数组里有正数也有负数。数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。求所有子数组的和的最大值。要求时间复杂度为O(n)。 例如输...
快速排序之所比较快,因为相比冒泡排序,每次排序的时候设置一个基准点,将小于等于基准点的数全部放到基准点的左边,将大于等于基准点的数全部放到基准点的右边。这样在每次交换的时候就...
简介 Protocol buffers are Google's language-neutral, platform-neutral, extensible mechani...
上周写了篇关于iOS 分类的文章,我们可以在分类中定义属性,但只是定义了属性,编译器既没有生成相应的setter和getter方法,也没有生成对应的成员属性。如果想给对象动态...
都是些很好的网址和开源库,闲来无聊常看看 干货社区 https://yq.aliyun.com/ziliao/topic_18989iOS知识图谱 第三方插件 http://...
前言 本文会用实例的方式,将iOS各种IM的方案都简单的实现一遍。并且提供一些选型、实现细节以及优化的建议。 注:文中的所有的代码示例,在github中都有demo:iOS即...
首先看一段AF2.x经典代码: 首先我们要明确一个概念,线程一般都是一次执行完任务,就销毁了。 而添加了runloop,并运行起来,实际上是添加了一个do,while循环,这...
迷惑一:队列和线程的关系 错误理解: 有些人会产生一种错觉,觉得队列就是线程。又有些人会有另外一种错觉,一个追加Block就是一个线程。 正确理解: 对我们使用者来说,**与...
写在开头: 大概回忆下,之前我们讲了AFNetworking整个网络请求的流程,包括request的拼接,session代理的转发,response的解析。以及对一些bug的...
前言: CocoaAsyncSocket是谷歌的开发者,基于BSD-Socket写的一个IM框架,它给Mac和iOS提供了易于使用的、强大的异步套接字库,向上封装出简单易用O...
写在开头: 大概回忆下,之前我们讲了AFNetworking整个网络请求的流程,包括request的拼接,session代理的转发,response的解析。以及对一些bug的...
前言: 本文承接自上篇:iOS即时通讯进阶 - CocoaAsyncSocket源码解析(Connect篇) 注:文中涉及代码比较多,建议大家结合源码一起阅读比较容易能加深理...