Sherlock

I am Sherlock

算法复杂度

大O表示法

*  * 常见复杂度由低到高罗列如下:

  • O(1)
    *O(logn)
  • O(n)
  • O(nlogn)
  • O(n^2)
  • O(n^3)
  • O(2^n)
  • O(n!)
  • O(n^n)

安装 Flutter

下载 Futter

运行如下命令,从 GitHub 下载 Flutter:

$ git clone https://github.com/flutter/flutter.git

配置环境变量

  • Path 条目下的配置

    “控制面板>用户帐户>用户帐户>更改我的环境变量”。在“用户变量”下“Path”条目:添加 flutter\bin 的全路径。

  • 添加条目

    PUB_HOSTED_URL https://pub.flutter-io.cn
    FLUTTER_STORAGE_BASE_URL https://storage.flutter-io.cn

Read more »

iPhone

设备 尺寸(inch) 逻辑分辨率(pt) 屏幕分辨率(px) Scale Factor
iPhone 3.5 320x480 320x480 @1x
iPhone 3G/3GS 3.5 320x480 320x480 @1x
iPhone 4/4S 3.5 320x480 640x960 @2x
iPhone 5/5C/SE 4.0 320x568 640x1136 @2x
iPhone 6/6s/7/8 4.7 375x667 750x1334 @2x
iPhone 6p/6sp/7p/8p 5.5 414x736 1242x2208 @3x
iPhone x 5.8 375x812 1125x2436 @3x
Read more »

进程

维基百科:程序本身只是指令、数据及其组织形式的描述,进程才是程序(那些指令和数据)的真正运行实例。若干进程有可能与同一个程序相关系,且每个进程皆可以同步(循序)或异步(平行)的方式独立运行。

*  *在iOS系统中,一个APP的运行实体代表一个进程。一个进程有独立的内存空间、系统资源、端口等。在进程中可以生成多个线程、这些线程可以共享进程中的资源。

进程间通信

*  *iOS 中大概有 7 种进程间通信的方式。

Read more »

堆和栈

堆 (heap)

*  * 堆存放OC对象类型,又称优先队列,但并不是队列,按照优先级取出元素。一般存放在二级缓存中,生命周期又垃圾回收机制决定,调用这些对象的速度相对会低一些。特性如下:

  • 任意节点的优先级不小于它的子节点
  • 每个节点值都小于或等于它的子节点
  • 主要操作是插入和删除最小元素(元素值本身为优先级键值,小元素享有高优先级)

栈 (stack)

*  * 栈存放非OC对象类型,使用的是一级缓存,通常被调用时处于存储空间中,调用完毕立即释放,一般有操作系统自动分配释放存储空间。只有一端可以操作,遵从先进后出、后进先出的原则,只支持三种操作:toppoppush

  • top:查看 top frame
  • pop:将新元素加入栈成为新的 top frame
  • push:取出 top frame
Read more »

主要内容

  • 利用 runtime 交换方法
  • 利用 runtime 动态添加方法
  • 利用 runtime 动态添加属性
  • 利用 runtime 字典转模型
  • KVO 的实现
  • JSPatch 的实现
  • 实现 NSCoding 的自动归档和自动解档

交换方法

*  *交换自定义方法 ditImangeNamed: 和系统方法 imageNamed: 的implementation。可以在不大量修改项目代码的情况下,添加所需的功能。注:ditImangeNamed: 的方法实现里不要再掉用 imageNamed: 方法,否则会引起循环引用。

Read more »

定义

Cocoa 的前身是 NeXT 公司开发的 NEXTSTEP 系统,NEXTSTEP由很多库(Framework)和工具组成,后来改名为 OpenStep,再次改名为 Cocoa,这也是 Cocoa 的很多类都有 NS 的前缀的原因。

Read more »

主要内容

  • runtime 是什么
  • runtime 的消息机制

是什么

*  *OC 是在C语言的基础上进行的扩展和封装。对于C语言,调用未实现的函数在编译阶段就会报错,而对于OC语言,调用的只要是声明过的函数,在编译阶段不会报错,在运行阶段才会报错。这就是OC的动态性的一个体现,并且C语言是面向过程的语言,而OC是面向对象的编程语言,OC对C语言的这些扩展的核心就是 runtime。
*  *runtime 简称运行时,主要由C和汇编编写,是OC面向对象和动态机制的基础,其的核心是 消息机制。在使用的过程中,我们可以参考官方Api

Read more »
0%