上一页 1 ··· 7 8 9 10 11
摘要: 当一个所有者(owner,其本身可以是任何一个Objective-C对象)做了以下某个动作时,它拥有对一个对象的所有权(ownership):1. 创建一个对象。包括使用任何名称中包含“alloc”、“new”、或者“copy”的方法。2. 保留(retain)一个对象。一个对象可以有多个所有者,一个所有者也可以拥有多个对象。相应的,引用计数增减的基本规则是:1.当所有者创建一个对象时,该对象的引用计数为1。2.当所有者保留它时,该对象的引用计数加1。3.当所有者释放(release)它时,该对象的引用计数减1。与此相关的,当一个所有者对于一个对象的引用计数的增减总计为0时,它放弃了对这个对象 阅读全文
posted @ 2014-02-22 09:40 bokeyuan_dan 阅读(520) 评论(0) 推荐(0) 编辑
摘要: 由init、loadView、viewDidLoad、viewDidUnload、dealloc的关系说起init方法在init方法中实例化必要的对象(遵从LazyLoad思想) init方法中初始化ViewController本身loadView方法当view需要被展示而它却是nil时,viewController会调用该方法。不要直接调用该方法。 如果手工维护views,必须重载重写该方法 如果使用IB维护views,必须不能重载重写该方法loadView和IB构建view 你在控制器中实现了loadView方法,那么你可能会在应用运行的某个时候被内存管理控制调用。 如果设备内存不足的时候 阅读全文
posted @ 2014-02-22 09:40 bokeyuan_dan 阅读(540) 评论(0) 推荐(0) 编辑
摘要: 有时候一个所有者创建一个对象后,会立刻将该对象的指针传递给其它所有者。这时,这个创建者不希望再拥有这个对象,但如果立刻给它发送一个release消息会导致这个对象被立刻释放掉——这样其它所有者还没有来得及保留该对象。解决这个两难问题的方法是,给对象发送一个autorelease消息:这样创建者不再拥有该对象的所有权;该对象成为自动释放的对象,但是不会立刻被释放掉;其它所有者可以有时间保留或复制该对象,并成为其唯一所有者。我们来看一个自动释放的例子(代码清单3-1)。一个所有者先用alloc方法创建一个对象;此时该所有者拥有这个对象,对象的引用计数为1。紧接着,所有者自动释放该对象;所有者此时已 阅读全文
posted @ 2014-02-22 09:39 bokeyuan_dan 阅读(268) 评论(0) 推荐(0) 编辑
摘要: 什么是GCD?Grand Central Dispatch或者GCD,是一套低层API,提供了一种新的方法来进行并发程序编写。从基本功能上讲,GCD有点像NSOperationQueue,他们都允许程序将任务切分为多个单一任务然后提交至工作队列来并发地或者串行地执行。GCD比之NSOpertionQueue更底层更高效,并且它不是Cocoa框架的一部分。除了代码的平行执行能力,GCD还提供高度集成的事件控制系统。可以设置句柄来响应文件描述符、mach ports(Mach port用于 OS X上的进程间通讯)、进程、计时器、信号、用户生成事件。这些句柄通过GCD来并发执行。GCD的API很大 阅读全文
posted @ 2014-02-22 09:39 bokeyuan_dan 阅读(238) 评论(0) 推荐(0) 编辑
上一页 1 ··· 7 8 9 10 11