240 发简信
IP属地:广东
  • 各种锁

    # 互斥锁 是一种用于多线程编程中,防止两条线程同时对同一公共资源(比如全局变量)进行读写的机制。该目的通过将代码切片成一个一个的临界区而达成。 1.NSLock:是Foun...

  • B+数算法

    # B+树遍历与查找 B+树的特征: 1.有k个子树的中间节点包含有k个元素(B树中是k-1个元素),每个元素不保存数据,只用来索引,所有数据都保存在叶子节点。 2.所有的叶...

  • 区间/链表算法

    # 区间合并算法 输入: [[1,3],[2,6],[8,10],[15,18]] 输出: [[1,6],[8,10],[15,18]] 解释: 区间 [1,3] 和 [2,...

  • 排序算法

    # 冒泡排序 1.算法步骤 比较相邻的元素。如果第一个比第二个大,就交换他们两个。 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大...

  • 安全性

    # 使用国密加密 ## 防止动态调试和代码注入 iPhone真实的运行环境是没有sys/ptrace.h抛出。ptrace 方法没有被抛出, 可以通过dlopen拿到它。 d...

  • Category

    # 概念 category的主要作用是为已经存在的类添加方法。 Objective-C 中的 Category 就是对装饰模式的一种具体实现。它的主要作用是在不改变原有类的前...

  • 简单记录

    1.IOS ASI http 框架 ASIHTTPRequest对CFNetwork API进行了封装 2.iOS实现断点续传 要实现断点续传的功能,通常都需要客户端记录下当...

  • 设计模式

    # 设计模式 代理模式、观察者模式、MVC模式、单例模式、策略模式、工厂模式、MVVM ##代理 场景:当一个类的某些功能需要由别的类来实现,但是又不确定具体会是哪个类实现。...

  • weak

    # weak基本介绍 weak是弱引用,用weak来修饰、描述所引用对象的计数器并不会加1,而且weak会在引用对象被释放的时候自动置为nil,这也就避免了野指针访问坏内存而...

  • 组件化

    # 为什么要组件化 1.实现之间解耦、减少项目的编译时间,提升业务开发效率 2.模块拆分成组件,方便对外付能 ## 组件化方案 1.代码解耦 1)组件原则 组件通常分为两种类...

  • app优化

    # 程序内容加载顺序 1.启动 dyld,将二进制文件初始化 2.ImageLoader 把二进制文件加载进内存 3.runtime 执行 load_images ,执行所有...

  • 数据结构

    # NSMapTable 1.NSMapTable是NSDictionary的通用版,是可变的,可以存储任意的指针,通过指针来进行相等性和散列检查 2.NSDictionar...

  • 消息转发

    # 前言 一个类对象查找方法,我们都知道是先从缓存列表中去查找,然后在去方法列表里查找,这样就能快速的查找到相关的imp,但是当我们没有查找到相应的imp时,系统又会做一些什...

  • 多线程

    # 什么是进程 1.进程是指在系统中正在运行的一个应用程序 2.每个进程之间是独立的,每个进程均运行在其专用且受保护的内存空间内 比如同时打开QQ、Xcode,系统就会分别启...

  • KVC

    # 什么是KVC KVC(Key-value coding)键值编码,就是指iOS的开发中,可以允许开发者通过Key名直接访问对象的属性,或者给对象的属性赋值。而不需要调用明...

  • TCP/IP

    # 传输层中的 TCP 和 UDP TCP/IP 中有两个具有代表性的传输层协议,分别是 TCP 和 UDP。 1.TCP 是面向连接的、可靠的流协议。流就是指不间断的数据结...

  • http/https

    # HTTP和HTTPS的基本概念 HTTP:是互联网上应用最为广泛的一种网络协议,是一个客户端和服务器端请求和应答的标准(TCP),用于从WWW服务器传输超文本到本地浏览器...

  • GCD

    # GCD优点 1.GCD 会自动管理线程的生命周期(创建线程、调度任务、销毁线程) 2.GCD更接近底层,性能较高 3.GCD 会自动利用更多的 CPU 内核(比如双核、四...

  • isa/imp

    # _isa isa指针是一个指向所属类的指针,它标注着一个实例对象的真实类型。 在Object-C中消息机制是依靠objc_msgSend()这个函数发送消息, objc_...

  • block

    # block 的底层实现 将main.m中的代码通过clang编译成main.cpp代码: int main(int argc, const char * argv[]) ...