TTTRandomizedEnumerator
TTTRandomizedEnumerator copied to clipboard
Mix things up with your collection classes with style and class (well, a category, but you get the idea).
TTTRandomizedEnumerator
Random Access (Collection) Memories
Mix things up in your collection classes with style and class (well, a category, but you get the idea).
I think we can all make a little more room in our hearts for NSEnumerator, that fresh jam from 1995.
Random aside: did you know you can reverse an
NSArrayin a single line withNSEnumerator?array.reverseObjectEnumerator.allObjects. Boom.
Anyway, this is the best way to randomly step through the objects of an NSArray, NSSet, or NSOrderedSet, as well as the keys and values of an NSDictionary.
Example Usage
#import "TTTRandomizedEnumerator.h"
NSUInteger capacity = 100;
NSMutableArray *mutableNumbers = [NSMutableArray arrayWithCapacity:capacity];
for (NSUInteger i = 0; i < capacity; i++) {
[mutableNumbers addObject:@(i)];
}
// Classic `NSEnumerator` use with `while` loop
NSNumber *number = nil;
NSEnumerator *enumerator = [mutableNumbers randomizedObjectEnumerator];
while ((number = [enumerator nextObject])) {
NSLog(@"%@", number);
}
// `NSEnumerator` also conforms to `<NSFastEnumeration>`
for (NSNumber *number in [mutableNumbers randomizedObjectEnumerator]) {
NSLog(@"%@", number);
}
Category Methods
NSArray
- (NSEnumerator *)randomizedObjectEnumerator;
NSSet
- (NSEnumerator *)randomizedObjectEnumerator;
NSOrderedSet
- (NSEnumerator *)randomizedObjectEnumerator;
NSDictionary
- (NSEnumerator *)randomizedKeyEnumerator;
- (NSEnumerator *)randomizedObjectEnumerator;
Contact
Mattt Thompson
- http://github.com/mattt
- http://twitter.com/mattt
- [email protected]
License
TTTRandomizedEnumerator is available under the MIT license. See the LICENSE file for more info.