11 memory iphone cocoa memory-management objective-c
可能的重复:
学习Obj-C内存管理
iPhone的内存管理的最佳解释在哪里?
我来自C/C++背景,Objective-C的动态特性对我来说有些陌生,有没有人能指出我在Objective-C中使用一些基本的内存管理技术?恩.保留,释放,自动释放
例如,使用指向Objective-C对象的指针并将其视为数组是完全非法的吗?您是否被迫使用NSArray和NSMutableArray进行数据结构?
我知道这些都是新手问题,感谢您提供的任何帮助.
mma*_*alc 13
重复内存管理的基本规则通常没有用,因为你几乎总是犯错误或者不完整地描述它们 - 就像'heckj'和'benzado'提供的答案一样......
来自'www.stray-bits.com'的答案的恰当之处:声称从"非拥有"方法返回的对象是"自动释放的"也充其量是误导性的.您通常不应该考虑是否"自动释放"某些内容,而只是考虑内存管理规则并确定您是否通过这些约定拥有了返回的对象.如果你这样做,你需要放弃所有权......
一个反例(考虑自动释放的对象)就是当你考虑与方法相关的性能问题时stringWithFormat:.由于您通常(1)无法直接控制这些对象的生命周期,因此它们可能会持续相对较长的时间并不必要地增加应用程序的内存占用量.虽然在桌面上这可能没什么影响,但在更受限制的平台上,这可能是一个重要问题.因此,在所有平台上使用alloc/ init模式被认为是最佳实践,并且在更受约束的平台上,在可能的情况下,强烈建议您不要使用任何会导致自动释放对象的方法.
(1)您可以使用自己的本地自动释放池来控制.有关详细信息,请参阅Apple的内存管理编程指南.
| 归档时间: |
|
| 查看次数: |
13402 次 |
| 最近记录: |