摘要: 大家都知道,在开发过程中应该尽可能减少用户等待时间,让程序尽可能快的完成运算。可是无论是哪种语言开发的程序最终往往转换成汇编语言进而解释成机器码来执行。但是机器码是按顺序执行的,一个复杂的多步操作只能一步步按顺序逐个执行。改变这种状况可以从两个角度出发:对于单核处理器,可以将多个步骤放到不同的线程, 阅读全文
posted @ 2016-08-30 12:02 graveliang 阅读(473) 评论(0) 推荐(0) 编辑
摘要: 数据库读取操作一般都是多线程访问的。在对数据进行读取时,我们要保证其当前状态不能被修改,即读取时加锁,否则就会出现数据错误混乱。IOS中常用的两种数据持久化存储方式:CoreData和SQLite,两者都需要设置线程安全,在这里以FMDB来解释对SQLite的线程安全访问。 一:FMDB的线程安全: 阅读全文
posted @ 2016-08-29 17:00 graveliang 阅读(259) 评论(0) 推荐(0) 编辑
摘要: JSPatch 是一个 iOS 动态更新框架,只需在项目中引入极小的引擎,就可以使用 JavaScript 调用任何 Objective-C 原生接口,获得脚本语言的优势:为项目动态添加模块,或替换项目原生代码动态修复 bug。 之前在博客上写过两篇 JSPatch 原理解析文章(1 2),但随着 阅读全文
posted @ 2016-08-26 10:57 graveliang 阅读(9769) 评论(0) 推荐(0) 编辑
摘要: Objective-C Objective-C语言基础 library,framework的制作 Runtime 编程 LLVM 原理和调优 操作系统 iOS内存管理和调优 iOS的文件系统和沙盒机制 iOS多线程编程(Thread,GCD,NSOperation) iOS网络和服务器编程(NSUR 阅读全文
posted @ 2016-08-25 12:06 graveliang 阅读(3937) 评论(0) 推荐(0) 编辑
摘要: 随着移动互联网的发展,如今的手机早已不是打电话、发短信那么简单了,播放音乐、视频、录音、拍照等都是很常用的功能。在iOS中对于多媒体的支持是非常强大的,无论是音视频播放、录制,还是对麦克风、摄像头的操作都提供了多套API。在今天的文章中将会对这些内容进行一一介绍: 音频 在iOS中音频播放从形式上可 阅读全文
posted @ 2016-08-11 11:23 graveliang 阅读(502) 评论(0) 推荐(0) 编辑
摘要: 减少比例= (360(原来的行数)-159(瘦身后的行数))/360 = 56% 父类 MVC 和MVVM 前后基本不动 父类主要完成如下三个功能: 1)功能:MJRefrsh +上拉下拉没有更多数据,封装到父类的控制器 子类调用3行代码增加所有刷新功能 2)网络失败:显示网络错误的链接,写在父类子 阅读全文
posted @ 2016-08-10 18:45 graveliang 阅读(211) 评论(0) 推荐(0) 编辑
摘要: 我们在开发中常常会用到函数回调,你可以用通知来替代回调,但是大多数时候回调是比通知方便的,所以何乐而不为呢?如果你不知道回调使用的场景,我们来假设一下: 1.我现在玩手机 2.突然手机没有电了 3.我只好让手机开始充电 4.充电的过程中我好无聊,我要去看电视,但是我不会一直看电视,我要等手机电充满了 阅读全文
posted @ 2016-08-10 18:36 graveliang 阅读(158) 评论(0) 推荐(0) 编辑
摘要: Masonry是iOS在控件布局中经常使用的一个轻量级框架,Masonry让NSLayoutConstraint使用起来更为简洁。Masonry简化了NSLayoutConstraint的使用方式,让我们可以以链式的方式为我们的控件指定约束。本篇博客的主题不是教你如何去使用Masonry框架的,而是 阅读全文
posted @ 2016-08-08 17:09 graveliang 阅读(422) 评论(0) 推荐(0) 编辑
摘要: 借助通知来控制界面的横竖屏切换。还是整个App中大部分界面都是竖屏,某个界面可以横竖屏切换的情况。 首先,在【General】-->【Device Orientation】设置仅支持竖屏,like this: Device Orientation Device Orientation 然后在特殊的视 阅读全文
posted @ 2016-08-08 16:13 graveliang 阅读(1941) 评论(0) 推荐(0) 编辑
摘要: 入门篇 KVO是什么? Key-value observing is a mechanism that allows objects to be notified of changes to specified properties of other objects. KVO 是 Objective 阅读全文
posted @ 2016-08-08 16:06 graveliang 阅读(195) 评论(0) 推荐(0) 编辑