ttt

TTTRandomizedEnumerator

Mix things up with your collection classes with style and class (well, a category, but you get the idea).

Showing:

Popularity

Downloads/wk

0

GitHub Stars

225

Maintenance

Last Commit

8yrs ago

Contributors

4

Package

Dependencies

0

License

MIT

Categories

Readme

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 NSArray in a single line with NSEnumerator? 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

License

TTTRandomizedEnumerator is available under the MIT license. See the LICENSE file for more info.

Rate & Review

Great Documentation0
Easy to Use0
Performant0
Highly Customizable0
Bleeding Edge0
Responsive Maintainers0
Poor Documentation0
Hard to Use0
Slow0
Buggy0
Abandoned0
Unwelcoming Community0
100