Leonidas's Blog

其次致曲,曲能有诚。诚则形,形则著,著则明,明则动,动则变,变则化。唯天下至诚为能化。

Bonjour

持续更新中...

Bonjour 简介 传统的基于TCP/IP协议互联的局域网中,每个网络设备都被分配唯一的IP地址实现通讯,这个 IP 地址是一个长期固定不变的静态 IP 或者由 DHCP 服务来每次动态分配的 IP。假如一个设备 IP 是动态的,那么每次访问这个设备,都需要重新获取它的 IP,另外通过 IP 方式对用户来说本身也带来了极大的不便。 Bonjour,也称为零配置网络(zero-co...

常见的排序算法及其时间复杂度

持续更新中...

常见的排序算法 排序算法按实现方式,大致分类4大类: 一.交换排序 1 2 1.冒泡排序 2.快速排序 二.插入排序 1 2 1.直接插入排序 2.希尔(shell)排序 三.选择排序 1 2 1.直接选择排序 2.堆(Heap)排序 四.归并排序 交换排序  交换排序的基本思想都为通过比较两个数的大小,当满足某些条件时对它进行交换从而达到排序的目的。 常...

时间复杂度

持续更新中...

算法优劣的衡量维度: 正确性 可读性 健壮性: 对不合理输入的反应能力 时间复杂度: 估算程序指令的执行次数 空间复杂度: 估算程序所占的存储空间 时间复杂度一般用大O表示法(Big O)来描述,它表示的是数据规模n对应的复杂度,规则: 忽略常数、系数、低阶,举例如下: 9 » O(1) 2n+3 » O(n) ...

常用数据结构笔记

持续更新中...

常用数据结构笔记 什么是数据结构 数据结构是计算机存储数据、组织数据的方式。 数据结构类型大致可以分为: 线性结构: 常见的有: 线性表(数组、队列、链表、栈、哈希表等) 树形结构: 常见的有: 二叉树、红黑树、AVL树、B树、堆、Trie、哈夫曼树、并查集等 图形结构: 常见的有: 邻接矩阵、邻接表等 线性数据结构 线性...

iOSApp 的几个运行状态

持续更新中...

iOSApp 的几个运行状态 下图展示了app的几种运行状态: 简单说,App 有这样5种状态: 未运行(not running):程序未运行 未激活(active): 程序在前台运行,但是处于未激活状态,不接受事件 激活(inactive):程序在前台运行,且处于激活状态,接受事件 后台(background):程序退出前台,在后台运行 挂起(suspend...

分类与扩展

分类(cagegory) cagegory可以叫做分类或者类别,是Objective-C 2.0之后添加的语言特性。 主要特点及作用: 有名字,一般根据具体作用来取名,如NSAarry(Safe) 一般以独立文件形式存在,也可以放在本类中 如果多个分类中都有和原有类中同名的方法, 那么调用该方法的时候执行谁由编译器决定;编译器会执行最后一个参与编译的分类中的方法。 同名...

内存的几大区域

持续更新中...

名词解释 RAM:运行内存,不能掉电存储。 ROM:存储空间,可以掉电存储,例如内存卡、Flash。 内存的几大区域分布图 代码区 存放:函数的二进制代码 常量区 存放:常量字符串 释放时机:程序结束后由系统释放。 全局区(数据段) 细分:未初始化全局区bss段和初始化全局区data段 存放:初始化的全局变量和静态变量,存放在data段;未初始化的全局变量和静态变量,存放...

Weak漫谈

weak漫谈 被weak修饰的对象在被释放的时候会发生什么? 会被置为nil. weak怎么做到释放后将对象变为nil Runtime维护了一个weak表,用于存储指向某个对象的所有weak指针。 weak表其实是一个hash(哈希)表,Key是所指对象的地址,Value是weak指针的地址(这个地址的值是所指对象的地址)数组。 1、初始化时:runtime会调用objc_in...

如何设计缓存

如何设计缓存 从几个开源的iOS缓存相关框架找一些思路,然后再做一下总。 YYCache 作者ibireme在开发YYCache的时候也是调研了大量的缓存实现案例,比如系统的NSCache、NSDictionary和其他开源框架比如TMMemoryCache 、PINMemoryCache。YYCache也是实现了2级缓存,即内存缓存和磁盘缓存,并提供了简洁清晰的API接口,内部使用了...

RunLoop知识点整理

RunLoop知识点整理 概述 顾名思义,RunLoop翻译过来是跑圈的意思,其实是一个运行循环,也可以简单理解为是一个有退出条件的死循环。它有一下几个基本的作用: 保证程序的持续运行 处理App中的各种事件 节省CPU资源,提升程序性能 RunLoop在系统中应用十分广泛,以下模块都会用到RunLoop: 本质 Mach是XNU的内核,进程、线程和虚拟内存等对...