[ASMultidimensionalArrayUtils]

- optimized ASRecursivelyFindIndexPathsForMultidimensionalArray() to remove enumerateUsingBlock:
- replaced single project call to ASIndexPathsForMultidimensionalArray() in ASRangeController with ASIndexPathsForTwoDimensionalArray()
This commit is contained in:
Hannah Troisi
2016-03-14 22:47:43 -07:00
parent f97a509541
commit 7f6ce4e9de
2 changed files with 7 additions and 5 deletions

View File

@@ -230,7 +230,7 @@ static UIApplicationState __ApplicationState = UIApplicationStateActive;
_didUpdateCurrentRange = NO;
if (!_rangeIsValid) {
[allIndexPaths addObjectsFromArray:ASIndexPathsForMultidimensionalArray(allNodes)];
[allIndexPaths addObjectsFromArray:ASIndexPathsForTwoDimensionalArray(allNodes)];
}
// TODO Don't register for notifications if this range update doesn't cause any node to enter rendering pipeline.

View File

@@ -44,10 +44,12 @@ static void ASRecursivelyFindIndexPathsForMultidimensionalArray(NSObject *obj, N
if (![obj isKindOfClass:[NSArray class]]) {
[res addObject:curIndexPath];
} else {
NSArray *arr = (NSArray *)obj;
[arr enumerateObjectsUsingBlock:^(NSObject *subObj, NSUInteger idx, BOOL *stop) {
ASRecursivelyFindIndexPathsForMultidimensionalArray(subObj, [curIndexPath indexPathByAddingIndex:idx], res);
}];
NSArray *array = (NSArray *)obj;
NSUInteger idx = 0;
for (NSArray *subarray in array) {
ASRecursivelyFindIndexPathsForMultidimensionalArray(subarray, [curIndexPath indexPathByAddingIndex:idx], res);
idx++;
}
}
}