0
如何枚舉從數組中心開始的數組?枚舉NSArray從數組的中間/中間開始搜索
克努特克勞森幫我解決方案,我認爲可以提高性能明智,但也許不在代碼行數。 :-)
任何想法改進或其他解決方案?我認爲可以避免mutableCopy。
如何枚舉從數組中心開始的數組?枚舉NSArray從數組的中間/中間開始搜索
克努特克勞森幫我解決方案,我認爲可以提高性能明智,但也許不在代碼行數。 :-)
任何想法改進或其他解決方案?我認爲可以避免mutableCopy。
@implementation NSArray (Extensions)
- (void)enumerateFromCenterGoBothWaysUsingBlock:(void (^)(id obj, NSUInteger idx, BOOL *stop))block
{
NSMutableArray *copy = [self mutableCopy];
BOOL shouldStop = NO;
while([copy count] > 0 && shouldStop == NO)
{
NSUInteger index = [copy count]/2;
id obj = copy[index];
[copy removeObject:obj];
block(obj, index, &shouldStop);
}
}
@end
我喜歡我們的方式,我們只是2除去每次迭代。創意。 – hfossli
克諾特克勞森爲這個想法 – hfossli