随机访问(集合)回忆
用风格和类(嗯,是一个分类,但您懂的)在你的集合类中混搭一下吧。
我想我们可以为 1995 年新鲜出炉的 NSEnumerator
在心中腾出一点点空间。
顺便说一句:你知道吗?你可以用五行代码用
NSEnumerator
反转一个NSArray
?array.reverseObjectEnumerator.allObjects
。噗。
无论如何,这是遍历 NSArray
、NSSet
或 NSOrderedSet
的对象,以及 NSDictionary
的键和值的最佳方式。
#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);
}
NSArray
- (NSEnumerator *)randomizedObjectEnumerator;
NSSet
- (NSEnumerator *)randomizedObjectEnumerator;
NSOrderedSet
- (NSEnumerator *)randomizedObjectEnumerator;
NSDictionary
- (NSEnumerator *)randomizedKeyEnumerator;
- (NSEnumerator *)randomizedObjectEnumerator;
Mattt Thompson 编写
TTTRandomizedEnumerator 在 MIT 许可证下可用。有关更多信息,请参阅 LICENSE 文件。