![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
内存管理
文章平均质量分 82
iosdeve
开发者
展开
-
ARC之前世今生
前两节我们对 ARC(Automatic Reference Counting) 有了一个基本的理解,但是 ARC 是怎么产生的,为什么苹果要在其最新的 iOS/Mac OS X 上导入该框架? 如果不理解其背后的基本原理,只是死记硬背那些规则/方法,是毫无意义的。就像我们从小接受的填鸭式教育,基本上到后来都还给老师了。 本节,我们先来看看 ARC 产生之前的 Objective-C 内存管转载 2015-05-10 23:40:58 · 403 阅读 · 0 评论 -
ARC是什么
ARC是什么 ARC是iOS 5推出的新功能,全称叫 ARC(Automatic Reference Counting)。简单地说,就是代码中自动加入了retain/release,原先需要手动添加的用来处理内存管理的引用计数的代码可以自动地由编译器完成了。 该机能在 iOS 5/ Mac OS X 10.7 开始导入,利用 Xcode4.2 可以使用该机能。简单地理解ARC,就是通过转载 2015-05-10 23:38:30 · 736 阅读 · 0 评论 -
ARC之循环参照
概念 当我们使用强参照(Strong reference)时,往往需要留意 循环参照 的问题。循环参照指的是两个对象被互相强参照,以至于任一对象都不能释放。 一般情况下,当对象之间有“父子关系”时,强参照的情况发生的比较多。比如通讯薄对象AddrBook和每个通讯录Entry的关系如下。 这种情况下,由于Entry对象被AddrBook强参照,所以不能释放。另转载 2015-05-10 23:43:37 · 596 阅读 · 0 评论 -
ARC之对象转型
自 Xcode4.2 开始导入ARC机制后,为了支持对象间的转型,Apple又增加了许多转型用的关键字。这一讲我们就来了解其用法,以及产生的理由。 引子 我们先来看一下ARC无效的时候,我们写id类型转void*类型的写法: 1 2 id obj = [[NSObject alloc] init]; void *p = obj;转载 2015-05-10 23:45:39 · 391 阅读 · 0 评论 -
ARC总结
通过前面几篇文章的介绍,我想大家应该对ARC有了一个比较完整的理解。最后,我们来对ARC做一个总结,并把一些未涉及到的细节部分再深入讨论一下。 内存管理基本原则 内存管理的依循下面的基本原则 自己生成的对象,那么既是其持有者 不是自己生成的对象,也可成为其持有者(一个对象可以被多个人持有) 如果不想持有对象的时候,必须释放其所有权 不能释放已不再持有所有权转载 2015-05-10 23:45:17 · 489 阅读 · 0 评论 -
ARC之@property使用
上一回我们学到了一些ARC的基本概念,这一次我们来看看ARC对@property的使用规则有何影响。 所有者属性 我们先来看看与所有权有关系的属性,关键字间的对应关系。 属性值 关键字 所有权 strong __strong 有 weak __weak 无 unsafe_unreta转载 2015-05-10 23:41:29 · 413 阅读 · 0 评论 -
ARC之Outlet与弱引用
使用weak property声明Outlet 当我们使用 Interface Builder 生成Outlet对象的时候,一般都是作为 subview 来使用的。比如 UIViewController 的view。所以说Outlet的持有者就是superview对象,即有“父子”关系。由上一回 iPhone开发之深入浅出 (4) — ARC之循环参照 我们知道,当对象间有“父子”关系时转载 2015-05-10 23:44:33 · 381 阅读 · 0 评论