有以下两个代码段之间的任何实际的区别:Objective-C的移动阵列(内存管理)之间的项目
NSObject * obj = [[_mutableArrayOne objectAtIndex:i] retain];
[_mutableArrayOne removeObject:obj];
[_mutableArrayTwo addObject:obj];
[obj release];
和
NSObject * obj = [_mutableArrayOne objectAtIndex:i];
[_mutableArrayTwo addObject:obj];
[_mutableArrayOne removeObject:obj];
谢谢。这几乎是我的想法。 – Steve 2010-07-23 02:20:55
removeObject删除所有的事件 - 在第二种情况下,你将不会有可变数组中的'objec'......看到我的答案... – 2010-07-23 02:22:38
这是公然不真实的。在第二种情况下,当对象在* both *数组中时,有一小段时间窗口。在多线程环境中,这可能是一个问题(相反,让数组中的对象也可能成为问题)。 – JeremyP 2010-07-23 09:35:32