iOS单例模式

摘要: 单例设计模式。因为此模式经常引起争议,所以我想有必 要在此解释一下单例。原则上,单例是在程序生命周期里只被实例化过一次的 类。为了确保这一点,我们利用类的一个静态方法来生成和访问对象。因此, 你是通过以便利方法来访问某个类的单例对象的,而不是用 alloc/init或者静态autorelease初始化方法。在很多时候,我们使用一个某个类的唯一实例。最常见的就是一个程序的主类。以下是以名为 RootViewController 创建的一个单例函数:static RootViewController*sharedRootController = nil;+(RootViewController * 阅读全文
posted @ 2014-02-22 21:23 李志斌 阅读(161) 评论(0) 推荐(0) 编辑

Objective-C中的meta-class

摘要: 讨论Objective-C的一个奇怪的概念 meta-class在Objective-C中的每个类,都有它自己相关的meta-class,但因为你很少直接使用meta-class,所以显得很神秘。在运行时建立一个类下面的代码在运行时创建一个NSError新的子类,并添加一个方法到里面:Class newClass = objc_allocateClassPair([NSError class], “RuntimeErrorSubclass”, 0);class_addMethod(newClass, @selector(report), (IMP)ReportFunction, “v@:”); 阅读全文
posted @ 2014-02-22 21:22 李志斌 阅读(217) 评论(0) 推荐(0) 编辑

Mac svn命令 linux同样适用

摘要: 1、将文件checkout到本地目录svn checkout path(path是服务器上的目录)例如:svn checkout svn://192.168.1.1/pro/domain简写:svn co2、往版本库中添加新的文件或文件夹svn add file例如:svn add test.php(添加test.php)svn add *.php(添加当前目录下所有的php文件)3、将改动的文件提交到版本库svn commit -m“LogMessage“ [-N] [--no-unlock] PATH(如果选择了保持锁,就使用–no-unlock开关)例如:svn commit -m “a 阅读全文
posted @ 2014-02-22 21:21 李志斌 阅读(280) 评论(0) 推荐(0) 编辑

UIViewController内存管理

摘要: iOS开发UIViewController内存管理是本文要介绍的内容,在iOS3.0 后,UIViewController多了一个叫做 viewDidUnLoad 的方法。不少人都不清楚这个方法的具体意义,苹果的文档也就一句 ”Called when the controller’s view is released from memory” 简单的解释了下,并要求你把 IBOutlet 绑定的视图给清空,为什么呢? 先看下UIViewController从创建 view 到展示的流程的几个函数 -initWithNibName:bundle: 这两个方法都是初始化一个 vc,但请注意... 阅读全文
posted @ 2014-02-22 21:19 李志斌 阅读(165) 评论(0) 推荐(0) 编辑

iOS内存管理

摘要: 1. 内总管理原则(引用计数) IOS的对象都继承于NSObject, 该对象有一个方法:retainCount ,内存引用计数。 引用计数在很多技术都用到: window下的COM组件,多线程的信号量,读写锁,思想都一样。 (一般情况下: 后面会讨论例外情况) alloc 对象分配后引用计数为1 retain 对象的引用计数+1 copy copy 一个对象变成新的对象(新内存地址) 引用计数为1 原来对象计数不变 release 对象引用计数-1 如果为0释放内存 autorelease 对象引用计数-1 如果为0不马上释放,最近一个个pool时释... 阅读全文
posted @ 2014-02-22 21:14 李志斌 阅读(162) 评论(0) 推荐(0) 编辑

IOS详解TableView——性能优化及手工绘制UITableViewCell

摘要: 提高表视图的性能UITableView作为应用中最常用的视图,它的性能优化问题几乎是经常提及。下面对在非网络访问情况下的表视图性能优化进行了主要的几点说明:1.自定义类或XIB文件时在系统提供的样式不能满足我们的时候,我们经常会创建自定义类或者XIB文件来自定义单元格样式。在之前,我们通常通过loadNib的方式或者在代理方法中继续使用老的方法来设置重用,管理缓存池。在IOS6以后,我们可以通过注册的方式在注册单元格甚至表头视图,让系统来更高效的进行管理。2.InterfaceBuilder据说有很多偏执的工程狮们坚持手打代码来完成工程,讨厌拖拖拽拽。不过随着IB的不断强大,已经有越来越多的人 阅读全文
posted @ 2014-02-17 21:03 李志斌 阅读(361) 评论(0) 推荐(0) 编辑

IOS详解TableView——内置刷新,EGO,以及搜索显示控制器

摘要: 这几天因为住的地方的网出了一点问题,除了能上Q,上微博以外其他的网页全都无法登陆。博客也就没有跟进。今天恢复了,所以继续更新博客。也希望大家能继续评论或私自给我一些建议或者交流:-)今天找到了以前一个TableView的例子,主要关于上下拉刷新的,所以写了一个demo,然后更新到博客上来。内置刷新内置刷新是苹果IOS6以后才推出的一个API,主要是针对TableViewController增加了一个属性,refreshControl,所以如果想用这个内置下拉刷新的话,最好给你的TableView指定一个专门的视图控制器了。使用的话,我们需要给refreshControl指定一个UIRefres 阅读全文
posted @ 2014-02-17 20:54 李志斌 阅读(457) 评论(0) 推荐(0) 编辑

IOS详解TableView——静态表格使用以及控制器间通讯

摘要: 一个Demo 通过使用静态表格来完成个人资料增加编辑以及搜索。不过通常我们会使用更灵活的Group风格表视图来完成。上篇文章简单的介绍了一下搜索框的使用。这里给其加入数据来说明。先看下效果主要涉及到三个页面,列表页面,显示信息页面,以及添加/编辑界面。主要解决的就是视图控制器间的数据通讯问题,以及在搜索表格点击后更改数据同样能进行正确地传递。这里的数据通讯采用了比较常用的代理设计模式。storyboard个人信息储存在一个模型类Person中遵守了NSCoding 可以对其信息进行归档解档。为了能正确显示搜索框的内容,需要对表视图的数据源和代理方法对tableView进行判断,比如表格视图显示 阅读全文
posted @ 2014-02-17 20:43 李志斌 阅读(429) 评论(0) 推荐(0) 编辑

IOS回调机制——代理,通知中心以及Block

摘要: Xcode5.0正式版IOS7和Xcode5正式版在昨天正式可以下载。IOS7不多说了,交互设计,界面风格,操作的简化程度都属于比较领先的水平。这里来说说Xcode5正式版,和以前的Xcode5测试版来比,正式版改动不大,不过也有稍许变化。整体来讲,跟Xcode4.6比,属于换了一个时代- -(因为以前的工程换到这里编译需要改很多地方)Xcode5给我的感觉就是:界面简洁扁平化,配置工程图形化,还有就是。。白。为什么说白,看看配置IB和配置工程就知道了。。。相比4.6来讲,5在操作上还是有很多大的改进。也可以用于开发旧版本的项目,需要把arm64去掉,把XIB文件设置成之前的版本就好。不过也有 阅读全文
posted @ 2014-02-17 20:32 李志斌 阅读(689) 评论(0) 推荐(0) 编辑

ARM相关知识

摘要: ARM7采用冯·诺依曼(Von-Neumann)结构,数据存储器和程序存储器重合在一起。 同时,此结构也被大多数计算机所采用。ARM7为三级流水线结构(取指,译码,执行),平均功耗为0.6mW/MHz,时钟速度为66MHz,每条指令平均执行1.9个时钟周期ARM7系列微处理器包括如下几种类型的核:ARM7TDMI、ARM7TDMI-S、 ARM720T、ARM7EJARM7采用的Neumann结构,取指令和取操作数都是通过一条总线分时进行,这样,在高速运算时,不但不能同时取指令和取操作数,而且还会造成传输通道上的瓶颈现象ARM9采用哈佛(Harvard)结构,程序存储器与数据存储器分 阅读全文
posted @ 2014-02-17 20:20 李志斌 阅读(265) 评论(0) 推荐(0) 编辑