转载自:http://www.cocoachina.com/ask/questions/show/85981
前一个是autorelease类型的,不用你手动释放,系统会回收,后面的你要需自己释放
区别在于生成的字符串何时被回收。使用alloc出来的方式,字符串在调用release的时候被回收(假设该字符串没有被其他东西引用);使用stringWith的方式,字符串在api内部会被设置成autorelease,因此将会在最近的一个NSAutoreleasePool drain或release时被回收。
因此如果希望手动控制字符串被尽快回收,建议采用alloc方式,后边及时release。或者手动建立一个pool。否则只能等到包含整个app的pool release时才会被回收(即字符串一直在进程生存时存在)。
本文解释了autorelease与alloc创建的字符串回收的区别。autorelease会在最近的NSAutoreleasePool中被回收,而alloc创建的对象则需要显式调用release来回收。
1286

被折叠的 条评论
为什么被折叠?



