iOS开发笔记:内存的使用
2010-10-13 02:08:00 来源:本站整理核心提示:{// 针对str的操作}[str release];如果实际情况复杂,不能像例子中那样抽离出循环外,iOS开发笔记:内存的使用(2),需要创建自己的内存管理池, 同样适用于需要大量autorelease对象的过程NSAutoreleasePool * pool = [[NSAutoreleasePool alloc]
{
// 针对str的操作
}
[str release];
如果实际情况复杂,不能像例子中那样抽离出循环外,需要创建自己的内存管理池, 同样适用于需要大量autorelease对象的过程
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
for(int i=0; i < 100; i++ )
{
// actions
}
[pool release];
之所以要这样做,是因为apple处理iPhone的内存管理机制问题, 通常情况下,系统会在需要的时候释放整理所有的autorelease对象,这就是为什么有时候autorelease对象在作用域范围外还有可能是有效的
避免不常用对象驻留内存, 桌面开发的tx很多喜欢在程序初始化的时候将某些资源比如小图片加载进内存,从而提高程序运行效率。 但这种方式在iPhone以及其它mobile移动设备开发时需要避免,因为对于这些设备来说,内存永远显得不足(当然普通pc内存也是越大越好:) )。 按照apple的官方说法, Load resources lazily . 就是在需要的时候再从硬盘上读取,而避免常驻内存。
更多精彩
赞助商链接