在初始化时,调用init 和-(instancetype)initWithFrame:(CGRect)frame 当frame为CGRectZe...
Block的底层原理 一、Block概述 1.什么是block Block是将函数及其执行上下文封装起来的对象。 2.闭包 闭包 = 一个函数(...
六大设计原则 单一职责原则、开闭原则、依赖倒置原则、里氏替换原则、接口隔离原则、迪米特法则 单一职责原则 一个类只负责一件事 开闭原则 对修改关...
分类(Category) 分类是OC中的特有语法,它是表示一个指向分类的结构体的指针。原则上它只能增加方法,不能增加成员(实例)变量。其源码组成...
RunLoop是通过内部维护的事件循环来对事件和消息进行管理的对象 没有消息需要处理时,Runloop将线程控制器交给系统,即从用户态->内核态...
首先咱们来看下苹果的开发者文档。 NSKeyValueObserving An informal protocol that objects a...
利用CAShapeLayer和贝塞尔曲线来画一个圆环进度条,其实很简单,在此只做记录使用。 效果如下所示: 直接上代码.h头文件 .m实现文件 ...
一、什么是KVC? KVC的全称是Key-Value Coding,翻译成中文是 键值编码,键值编码是由NSKeyValueCoding非正式协...
当面对多个初始化方法时,外部调用者往往会手足无措,不知道哪一个才是正确的初始化方法,对此,苹果提供了两个关键字:NS_UNAVAILABLE 与...