【发布时间】:2011-12-11 04:14:45
【问题描述】:
假设我有一个循环,它返回一堆自动释放的 NSData 对象...
NSData* bigData = ...
while(some condition) {
NSData* smallData = [bigData subdataWithRange:...];
//process smallData
}
在 ARC 下,我是否仍应将 @autoreleasepool 包裹在 while 条件周围?
NSData* bigData = ...
@autoreleasepool {
while(some condition) {
NSData* smallData = [bigData subdataWithRange:...];
//process smallData
}
}
我问的原因是我看到我的 NSData 对象调用dataWith... 方法而不是initWith... 方法的仪器中的活分配计数。当我使用initWith... 时,生活分配数非常非常少。
尽可能选择initWith... 方法会更好吗?
【问题讨论】:
标签: objective-c memory-management automatic-ref-counting nsautoreleasepool