0
|
Ariel Malka · 技术社区 · 16 年前 |
![]() |
1
4
在Cocoa中,只有通过使用
为了获得一个你还没有拥有的对象的所有权(即你想让它保留下来以便以后可以使用它),你必须向该对象发送一条保留消息。例如,如果您按如下所示重写代码,那么您将拥有该字符串,并且以后不必担心使用它:
选项1可以使用
选项2可以,因为您通过发送字符串
当您处理完一个对象并希望放弃该对象的所有权时,您将向该对象发送
Cocoa内存管理是围绕对象所有权的概念而设计的。虽然一开始可能有点混乱,但一旦你把你的头绕在它周围,它会使在环境中编程变得更容易,而不会引入内存错误、泄漏或其他错误。便利方法(比如
有关更多信息,请阅读 Memory Management Programming Guide for Cocoa . 对于Cocoa开发人员来说,它确实是必需的阅读。而且,它通常需要阅读、试验和阅读几次才能真正掌握,特别是如果你对其他记忆管理模式有很多经验的话。 |
![]() |
2
1
使用类方法创建字符串时,通常会将其添加到最顶层的自动释放池中。在事件循环结束时,池向它所保存的所有对象发送一条发布消息。在这种情况下,新创建的字符串的保留计数等于1,在循环结束时,它达到0并被释放。如果要保留字符串,请向它发送一条保留消息,以便在事件循环结束时保持保留计数为正。 |
![]() |
user2606782 · 限制子视图在superview边界内的移动 7 年前 |