- 博客(12)
- 资源 (6)
- 收藏
- 关注
原创 自定义TabBarController
一、前言IOS中的TabBarController确实已经很强大了,但有时也不能完全满足全部的需求(如),因此有时需要自定义TabBar。二、自定义TabBar的总体实现步骤1.先把系统自带的TabBar条取消掉。2.自定义一个UIView,上面放几个按钮,设定按钮的点击事件,并设置selectIndex。3.关联各个子viewController,覆盖相关事件。
2015-11-30 22:26:14 1412 3
原创 GCD入门介绍一
什么是GCD?Grand Central Dispatch是一套底层API,提供一种新的方法进行并行程序编写。GCD跟NSOperationQueue比较像,它允许程序将任务切分为多个单一任务然后提交到工作队列中并发地或者串行地执行。GCD比NSOpertaionQueue更底层更高效,并且它不是Cocoa框架的一部分。GCD的API很大程度上基于block,当然,GCD也可以脱离bloc
2015-11-25 14:15:45 558
转载 谈Objective-C Block的实现
前言这里 有关于 block 的 5 道测试题,建议你阅读本文之前先做一下测试。先介绍一下什么是闭包。在 wikipedia 上,闭包的定义) 是:In programming languages, a closure is a function or reference to a function together with a referencing env
2015-11-23 11:06:26 405
转载 黑幕背后的Autorelease
黑幕背后的Autorelease我是前言Autorelease机制是iOS开发者管理对象内存的好伙伴,MRC中,调用[obj autorelease]来延迟内存的释放是一件简单自然的事,ARC下,我们甚至可以完全不知道Autorelease就能管理好内存。而在这背后,objc和编译器都帮我们做了哪些事呢,它们是如何协作来正确管理内存的呢?刨根问底,一起来探究下黑幕背后的Au
2015-11-21 18:02:15 631
转载 17个提升iOS开发效率的必用工具
时间就是金钱。编码效率的提升意味着更多的收入。可是当我们的开发技巧已经到达一定高度时,如何让开发效率更上一层楼呢?答案就是使用开发工具!在这篇文章中,我会向你介绍一些帮助我提升编码速度和工作效率的工具。Xcode插件几乎所有开发者都知道Alcatraz是一个开源的包管理工具,可以让我们更轻松地管理各种插件。接下来就介绍下我的最推荐的10个插件:10.HOStringSe
2015-11-20 09:31:51 682
转载 Objective-C Autorelease Pool 的实现原理
内存管理一直是学习 Objective-C 的重点和难点之一,尽管现在已经是 ARC 时代了,但是了解 Objective-C 的内存管理机制仍然是十分必要的。其中,弄清楚 autorelease 的原理更是重中之重,只有理解了 autorelease 的原理,我们才算是真正了解了 Objective-C 的内存管理机制。注:本文使用的 runtime 源码是当前的最新版本 objc4-646
2015-11-19 16:47:29 407
原创 SDWebImage内部实现过程
第三方开源在给我们带来便利的同时也会让我们偷懒,不去真真理解其中的原理。平时项目开发中,经常我们会涉及到图片的下载,可能我们对下面的代码的并不陌生:[self.iconView setImageWithURL:[NSURL URLWithString:user.profile_image_url] placeholderImage:[UIImage imageWithName:@"avatar
2015-11-15 21:31:26 573
转载 iOS性能优化:Instruments使用实战
最近采用Instruments 来分析整个应用程序的性能.发现很多有意思的点,以及性能优化和一些分析性能消耗的技巧,小结如下。Instruments使用技巧关于Instruments官方有一个很有用的用户使用Guide,当然如果不习惯官方英文可以在这里找到中文本翻译版本PDF参阅.Instruments 确实是一个很强大的工具,用它来收集关于一个或多个系统进程的性能和行为的数据
2015-11-14 20:28:36 470
转载 ios缓存策略
为什么要有缓存应用需要离线工作的主要原因就是改善应用所表现出的性能。将应用内容缓存起来就可以支持离线。我们可以用两种不同的缓存来使应用离线工作。第一种是**按需缓存**,这种情况下应用缓存起请求应答,就和Web浏览器的工作原理一样;第二种是**预缓存**,这种情况是缓存全部内容(或者最近n条记录)以便离线访问。像第14章中开发的Web服务应用利用按需缓存技术来改善可感知的性能而不是
2015-11-13 11:06:03 1451
原创 mac下为已有项目配置git,并提交到github
1.先退出xcode2.打开终端 2.1 cd到项目所在目录 2.2 初始化 git init 2.3 添加项目 git add ./ 2.4 提交 git commit -m "添加项目"在添加项目过程中,可能也会遇到一些问题。如2.3 git add ./可能出现$ git add ./warning: You ran 'git add' wit
2015-11-06 14:20:00 3429 1
原创 iOS学习笔记2(结合项目)--Category和Extension的区别
在实际项目中,用到Category比较多,Category也很实用,我们可以把一些经常用到或者很通用的功能封装到一个Category里,当其他项目需要相同的功能时,我们可以直接拿来用,不用从零开始写,可以提高项目的开发效率。下面我将重点讲解Category:1.Category是什么?Category用于向已经存在的类添加方法从而达到扩展已有类的目的,在很多情形下Category也是比创建
2015-11-02 17:04:18 1222
连续子数组的最大和
2015-12-23
iOS学习笔记2(结合项目)--Category和Extension的区别
2015-11-03
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人