【发布时间】:2014-02-16 17:04:00
【问题描述】:
我有一个循环,我想在每次迭代时重新定义数组的内容。我担心泄漏。这段代码有什么问题吗?
for (int i=0;i<numberOfReps;i++){
NSArray *shuffledArray=[self shuffleArray:originalArray];
// use shuffled array
}
感谢阅读!
编辑:
这里是 shuffleArray(感谢 Kristopher Johnson 来自 What's the Best Way to Shuffle an NSMutableArray?):
-(NSArray*)shuffleArray:(NSArray*)array{
NSMutableArray *newArray=[NSMutableArray arrayWithArray:array];
NSUInteger count = [newArray count];
for (NSUInteger i = 0; i < count; ++i) {
// Select a random element between i and end of array to swap with.
int nElements = count - i;
int n = (arc4random() % nElements) + i;
[newArray exchangeObjectAtIndex:i withObjectAtIndex:n];
}
return [NSArray arrayWithArray:newArray];
}
(我正在使用 ARC。)
【问题讨论】:
-
需要发布-shuffleArray方法的内容。到目前为止,您发布的代码没有泄漏。
-
您可以通过创建自己的类并将 NSLog 语句放入
init和dealloc方法中轻松地进行测试。
标签: ios objective-c loops memory-leaks