FROM:https://gist.github.com/oa414/5329414
#iOS5的强引用和弱引用
http://stackoverflow.com/questions/9262535/explanation-of-strong-and-weak-storage-in-ios5
##Question
在iOS5的ARC增加了两个定义,Strong和Week,而不用像之前一样手动管理内存。斯坦福的CS193P的公开课说
Strong: "keep this in the heap until I don't point to it anymore"
Weak: "keep this as long as someone else points to it strongly"
这到底是什么名堂?
##Answer
区别是对象会被释放,在没用强引用指向它的时候。即使有弱引用指向它,如果最后一个强引用没了,对象还是会被释放,并且所有存在的弱引用会被置零。
或许举个例子更好。
加入我们的对象是条狗,并且这条狗想逃跑(相当于对象释放)
强引用就像一条栓者狗的绳子。只要你有一条绳子拴者狗,狗就不会逃跑。如果五个人都牵着拴着狗的绳子(五个指向对象的强引用),这条狗就不会逃跑了,除非五条绳子都解开了。 弱
弱引用,就像小孩子指着狗说:看!一条狗!只要狗还被绑着,小孩子就能看到这条狗,就可以指着它。如果所有绳子都被松掉了,无论有多少小孩子指着这条狗,这条狗都会逃跑。
只要最后一个强引用不再指向对象,对象就会被释放,所有的弱引用都会置零。