绘图

iOS绘图的几种方式 先看一张图: 图中表明了iOS中常见的三种绘图方式: OpenGL ES / Metal Core Graphics Core Animation 其中OpenGL ES和Core Graphics都是偏底层的框架,关于OpenGL的使用可参考我的一个例子: h...

阅读更多

自旋锁安全问题验证!

在oc中有关键字nonatomic和atomic,atomic修饰的属性是写安全的,但绝不是线程安全。 实际上atomic修饰的属性只是多了一层自旋锁,其作用是对属性的setter方法加锁,当一个新的线程p1要尝试setter方法写操作时,需要获取的这个自旋锁,若此时已有线程p2正在写(已经占有自旋锁),那么p...

阅读更多

Block

Block block的本质是什么?是 oc 对象(包含isa指针), 是函数及其运行环境、上下文的封装。 常用于 使用 作为变量 int (^sum) (int, int); // 定义一个 Block 变量 sum // 给 Block 变量赋值 // 一般 返回值省略:sum...

阅读更多

Runloop, AutoreleasePool

Runloop 一个线程一次只能执行一个任务,执行完成后线程就会退出。RunLoop 机制能让线程随时处理事件但并不退出。这里说的随时是指:程序需要运行时就保持程序的持续运行,不需要的时候就进入休眠状态。 RunLoop 的结构 和 RunLoop 相关的主要涉及五个类: CFRunLoopRef:...

阅读更多

Cube 隐私协议

Cube尊重并保护您的个人隐私。本隐私策略解释Cube会收集关于您的哪些信息及其原因,以及我们会如何使用和保护这些信息。 Cube会收集我的哪些信息? Cube 不收集任何信息 Cube如何保护我的隐私? Cube不会在除非您许可的情况下将您的个人信息分享给第三方。 本《隐私政策》的修改 Cube可...

阅读更多

Pianoplayer Privacy agreement

Piano Player respects and protects your personal privacy. This privacy policy explains what information the Promasters collect about you and why, and how we ...

阅读更多

Pianoplayer 隐私协议

Piano Player尊重并保护您的个人隐私。本隐私策略解释临帖大师会收集关于您的哪些信息及其原因,以及我们会如何使用和保护这些信息。 Piano Player会收集我的哪些信息? Piano Player会以匿名形式通过 Alamofire服务收集琴谱。 Piano Player如何保护我的隐私? ...

阅读更多

http、https、restful

http简介 http是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是应用层协议,用于从WWW服务器传输超文本到本地浏览器。 http是标准的c/s模型,由请求应答构成,通常是无状态的协议。 http协议问世于1990年,1996年5月被正式作为标准公布,版本命名为http...

阅读更多