KAOLA's note.

KAOLA's note.

fix it.

消息转发
Background or Question 一般给对象的属性赋值主要有两种方式, _var=newValue 和 objc.var = newValue,大家都知道前者效率高,后者效率低 开发的过程中,引起APP奔溃的叫常见的一个场景是unrecognizedSelector,顾名思义是无法识别的方法or选择子 经常会有人问一个很宏观的问题:你是如何理解runtime的,我觉得runtime 有两个角度可以解释 一套用c实现的底层API 源码可以在apple的source library里下载 一种动态运行机制 在iOS中,程序运行时调用的方法【or 消息】并不是编译时期就确定下来...
深入比较strong和copy两种修饰符
strong和copy是property的两个基本修饰符,在oc中,一般情况下用来修饰对象。strong:property的默认修饰符。copy:一般用来修饰拥有可变类型的对象。比如NSString NSDictionary NSArray.在学习oc的过程中,大多数的资料里都提到了以上两点,却没有详细说明这么做的原因。本文旨在oc底层实现的基础上探讨以上两点的原因和合理性。 tip:对象的RC如何实现+1 和-1 请看对象的引用计数是如何管理的 一、strong和copy的不同、以及为什么NSString等对象一般用copy来修饰?对象使用strong和copy修饰后,都可以让对象的...
设计一个合理的蓝牙框架
蓝牙:为方便接入特定协议下的设备,有必要对硬件设备进行抽象,将蓝牙通讯的过程、逻辑封装成Framework。调用者不要花时间分析芯片的协议、特性,只需要拿到Framework,调用API即可。基于以上前提,这个框架需要具备以下条件: 指令响应及时、不需要调用者进行各种判断(比如设备是否断开、设备是都需要重连、指令是否需要重发、指令发送超时) 能直接将数据封装好给调用者使用。 指令有优先级。调用者可以设定指令优先级。(如调用者将“升级指令”设为最优,则处理完此次指令之前,其他指令都在等待序列) 由于底层会将数据分成以20bytes为单位进行读取。所以客户端要对收到的数据包进行合包。合包...
几种变量类型
1. 全局变量: 要在函数外面声明 可以跨文件访问 声明时可以赋值 默认初始值为0 储存在【全局(静态)存储区static】 extern 关键字 extern varName代表的是varName是调用外部声明的变量 2. 静态变量 可以在函数外部声明、亦可在函数外部声明 仅在声明文件内访问、不可以改变局部变量的作用域 声明时关键字为static 声明时可以赋值 默认初始值为0 储存在【全局(静态)存储区static】、只有一份内存 可以延长变量的生命周期 3. 局部变量 要在函数内部声明 运行到该函数时才会分配内存 只在声明变量的函数内部访问 一般数据类型储存在栈帧中...
avatar
kaola
fix it
FRIENDS
dajitui