帮助我了解Objective-C和Cocoa中的内存管理

Ste*_*eve 3 memory-management objective-c

不要开枪,我知道这一定要问过一千次......

我对Objective-C内存缺乏良好的文档感到不舒服.我理解alloc,dealloc,retain,release等等,但是脑子里还有一些混乱.

它只是懒惰的编程还是Objective-C在分配内存方面做了一些"幕后"自动化活动?

来自C背景(几个世纪前),我知道指针只是指针......你还必须为指针指向的位置保留空间,否则你将开始踩踏自己的程序和其他变量.

我找到的代码示例(并且在我阅读的书中 - 所有这些都与当前版本的XCode和Interface Builder完全不同)似乎永远不会为某些对象(如NSString)分配存储空间.它们声明一个指针(例如NSString*aString;)然后开始为字符串分配文本.每次调用都没有为字符串分配内存!?!?所有这些例子都只是懒惰的代码寻找崩溃的地方?

此外,书籍谈论声明"池"内存,并自动插入到您的代码中.当我创建项目,类和对象时,在任何地方都找不到这样的代码.苹果公司是否已经废除了这种自动插入,还是在编译期间发生了什么?

是否有倒数第二个参考书或网站,可以一劳永逸地解释这一切?

not*_*oop 15

您应该阅读Cocoa内存管理编程指南.

  • 如果可以,我会+10.这是Cocoa内存管理的终极资源. (3认同)