[iOS]arc机制中strong和weak的形象理解

翻译 2013年12月03日 21:49:55

The difference is that an object will be deallocated as soon as there are no strong pointers to it. Even if weak pointers point to it, once the last strong pointer is gone, the object will be deallocated, and all remaining weak pointers will be zeroed out.


Perhaps an example is in order.


Imagine our object is a dog, and that the dog wants to run away (be deallocated).


Strong pointers are like a leash on the dog. As long as you have the leash attached to the dog, the dog will not run away. If five people attach their leash to one dog, (five strong pointers to one object), then the dog will not run away until all five leashes are detached.


Weak pointers, on the other hand, are like little kids pointing at the dog and saying "Look! A dog!" As long as the dog is still on the leash, the little kids can still see the dog, and they'll still point to it. As soon as all the leashes are detached, though, the dog runs away no matter how many little kids are pointing to it.


As soon as the last strong pointer (leash) no longer points to an object, the object will be deallocated, and all weak pointers will be zeroed out.



翻译如下:

weak和strong不同的是 当一个对象不再有strong类型的指针指向它的时候 它会被释放  ,即使还有weak型指针指向它。


一旦最后一个strong型指针离去 ,这个对象将被释放,所有剩余的weak型指针都将被清除。


可能有个例子形容是妥当的。


想象我们的对象是一条狗,狗想要跑掉(被释放)。


strong型指针就像是栓住的狗。只要你用牵绳挂住狗,狗就不会跑掉。如果有5个人牵着一条狗(5个strong型指针指向1个对象),除非5个牵绳都脱落 ,否着狗是不会跑掉的。


weak型指针就像是一个小孩指着狗喊到:“看!一只狗在那” 只要狗一直被栓着,小孩就能看到狗,(weak指针)会一直指向它。只要狗的牵绳脱落,狗就会跑掉,不管有多少小孩在看着它。


只要最后一个strong型指针不再指向对象,那么对象就会被释放,同时所有的weak型指针都将会被清除。

相关文章推荐

iOS strong 和weak的形象理解(我服了!)

转:http://stackoverflow.com/questions/9262535/explanation-of-strong-and-weak-storage-in-ios5 觉得讲的很...

iOS strong 和weak的形象理解

The difference is that an object will be deallocated as soon as there are no strong pointers to it. ...

iOS arc机制 strong weak

写在开头 虽然距离WWDC2011和iOS 5已经快一年时间,但是很多开发者并没有利用新方法来提高自己的水平,这点在ARC的使用上非常明显(特别是国内,基本很少见到同行转向ARC)。我曾经询问过...

iOS strong 和weak的形象理解(真的很精典!)

转:http://stackoverflow.com/questions/9262535/explanation-of-strong-and-weak-storage-in-ios5  觉得讲的很容...

ios ARC 机制中的strong和weak 属性关键字的原理和使用规则

写在开头 虽然距离WWDC2011和iOS 5已经快一年时间,但是很多开发者并没有利用新方法来提高自己的水平,这点在ARC的使用上非常明显(特别是国内,基本很少见到同行转向ARC)。我曾经询...

iOS ARC机制 weak strong

写在开头 虽然距离WWDC2011和iOS 5已经快一年时间,但是很多开发者并没有利用新方法来提高自己的水平,这点在ARC的使用上非常明显(特别是国内,基本很少见到同行转向ARC)。我曾经询问过...

iOS学习笔记(8)——ARC与所有权修饰符——strong,weak和autorelease

ARC与所有权修饰符——strong,weak和autorelease 一、引用计数(Reference Counting) 首先,对于iOS中的引用计数: 1、在objective-C的对象中存...

iOS5 新加入ARC的 strong、weak、unsafe_unretained功能的解释

iOS5中加入了新知识,就是ARC,其实我并不是很喜欢它,因为习惯了自己管理内存。但是学习还是很有必要的。 在iOS开发过程中,属性的定义往往与retain, assign, cop...

iOS5 strong, weak, unsafe_unretained ARC

iOS5中加入了新知识,就是ARC,其实我并不是很喜欢它,因为习惯了自己管理内存。但是学习还是很有必要的。 有时我们写个代码开源出来给别人用时,会被其他开发者抱怨编译不了,很多情...

iOS5的strong,weak,unsafe_unretained ARC自动管理内存

一、iOS5的strong,weak,unsafe_unretained 原文链接http://blog.csdn.net/sillyboytao/article/details/7664847 ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:[iOS]arc机制中strong和weak的形象理解
举报原因:
原因补充:

(最多只允许输入30个字)