在ObjectiveC里,用@property访问所有的实例变量。@property有一对属性:strong 和 weak。官方文档里的解释晦涩难懂;Stack Overflow里的用户RDC (http://stackoverflow.com/users/1371853/rdc) 给出了形象的解释:
把对象想象成一条狗,它要跑 (be deallocated)。强指针就像一条拴在狗脖子上的狗链;只要攥在手里,狗就跑不了;如果5个人攥着5条狗链都拴着狗 (5个强指针指向对象),除非5条狗链都撒开,狗就跑不了。弱指针就像是孩子指着狗喊“看!狗!”;只要狗链还拴着狗,孩子就能指着狗喊。当所有狗链都撒开,不管有多少孩子指着狗喊,狗都跑了。当最后一个强指针不再指向对象,对象就会被释放,所有弱指针清零。我们什么时候使用弱指针呢?只有当你想避免保留循环 (retain cycles,) 时,我们才使用它。
时间: 2024-11-09 00:09:04