IOS ARC和手动内存管理
文章平均质量分 84
Aiken_lee
这个作者很懒,什么都没留下…
展开
-
IOS ARC内存管理,提高效率避免内存泄露
经过一周时间整理和总结的。对IOS的内存基本有个概念。Cocoa内存管理机制(1)当你使用new、alloc、copy方法创建一个对象时,该对象的保留计数器值为1.当不再使用该对象时,你要负责向该对象发送一条release或autorelease消息。这样,该对象将在其使用寿命结束时被销毁。(2)当你通过其他方法获得一个对象时,这假设该对象的保留计数器值为1,而且已经被设置为自原创 2014-03-20 23:11:30 · 1090 阅读 · 0 评论 -
ios开发之深入浅出 (5) — ARC之Outlet与弱引用
使用weak property声明Outlet当我们使用 Interface Builder 生成Outlet对象的时候,一般都是作为 subview 来使用的。比如 UIViewController 的view。所以说Outlet的持有者就是superview对象,即有“父子”关系。由上一回 iPhone开发之深入浅出 (4) — ARC之循环参照 我们知道,当对象间有“父子原创 2014-11-04 09:45:19 · 463 阅读 · 0 评论 -
iOS开发之深入浅出 (7) — ARC总结
通过前面几篇文章的介绍,我想大家应该对ARC有了一个比较完整的理解。最后,我们来对ARC做一个总结,并把一些未涉及到的细节部分再深入讨论一下。内存管理基本原则内存管理的依循下面的基本原则自己生成的对象,那么既是其持有者不是自己生成的对象,也可成为其持有者(一个对象可以被多个人持有)如果不想持有对象的时候,必须释放其所有权不能释放已不再持有所有权的对象不管ARC有没有效,原创 2014-11-04 09:53:39 · 519 阅读 · 0 评论 -
ios开发之深入浅出 (4) — ARC之循环参照
概念当我们使用强参照(Strong reference)时,往往需要留意 循环参照 的问题。循环参照指的是两个对象被互相强参照,以至于任一对象都不能释放。一般情况下,当对象之间有“父子关系”时,强参照的情况发生的比较多。比如通讯薄对象AddrBook和每个通讯录Entry的关系如下。这种情况下,由于Entry对象被AddrBook强参原创 2014-11-04 09:40:32 · 578 阅读 · 0 评论 -
ios开发之深入浅出 (3) — ARC之前世今生
ios开发之深入浅出 (3) — ARC之前世今生 前两节我们对 ARC(Automatic Reference Counting) 有了一个基本的理解,但是 ARC 是怎么产生的,为什么苹果要在其最新的 iOS/Mac OS X 上导入该框架? 如果不理解其背后的基本原理,只是死记硬背那些规则/方法,是毫无意义的。就像我们从小接受的填鸭式教育,基本上到后来都还给老师了。原创 2014-11-04 09:18:13 · 535 阅读 · 0 评论 -
ios开发之深入浅出 (1) — ARC是什么
ios开发之深入浅出 (1) — ARC是什么 ARC是什么ARC是iOS 5推出的新功能,全称叫 ARC(Automatic Reference Counting)。简单地说,就是代码中自动加入了retain/release,原先需要手动添加的用来处理内存管理的引用计数的代码可以自动地由编译器完成了。该机能在 iOS 5/ Mac OS X 10.7 开原创 2014-11-04 08:58:23 · 545 阅读 · 0 评论 -
ios开发之深入浅出 (2) — ARC之@property使用
上一回我们学到了一些ARC的基本概念,这一次我们来看看ARC对@property的使用规则有何影响。所有者属性我们先来看看与所有权有关系的属性,关键字间的对应关系。属性值关键字所有权strong__strong有weak__weak无unsafe_unretained__unsafe_u原创 2014-11-04 09:15:48 · 471 阅读 · 0 评论 -
ios开发之深入浅出 (6) — ARC之对象转型
ios开发之深入浅出 (6) — ARC之对象转型 自 Xcode4.2 开始导入ARC机制后,为了支持对象间的转型,Apple又增加了许多转型用的关键字。这一讲我们就来了解其用法,以及产生的理由。引子我们先来看一下ARC无效的时候,我们写id类型转void*类型的写法: id obj = [[NSObject alloc] init]; void *p =原创 2014-11-04 09:47:47 · 518 阅读 · 0 评论