添加到NSMutableArray时在循环中重用对象
问题描述:
在循环中将对象添加到NSMutableArray
时,有哪些最佳实践可用于重新使用为要添加到数组的对象分配的内存?添加到NSMutableArray时在循环中重用对象
例如:
for (int i = 0; i < 5; i++)
{
SampleObject *sampleObject = [[SampleObject alloc] init];
sampleObject.someProperty = ...
[sampleObjectArray addObject:sampleObject];
[sampleObject release];
}
这是正确的做法?我有sampleObjectArray
作为一个财产(非原子,保留)就可以了。它应该是复制而不是保留?
分配出循环,然后在循环完成时释放会更好吗?
答
你是否分析了你的代码,发现这对你来说是个问题?如果不是,不要担心微观优化。
也就是说,阵列保持对它们包含的对象的强烈引用 - 当对addObject:
的调用完成时,sampleObjectArray
在sampleObject
上有保留。因此,我认为你给出的示例代码是适当的 - 你alloc
/init
的对象,所以你release
它作为合适的,它是由它生活在阵列扶住只有
至于alloc
荷兰国际集团圈外的,我。我不确定这会起作用 - 对于阵列中的每个条目,您仍然需要alloc
,否则您会收到同一对象的五份副本。这最好在一个循环内完成,如果它在一个循环中,为什么不在相同的循环中作为已有的循环?