在Objective C中随机分配NSArray的规范方法

有没有一种规范的方法可以在Objective C中将数组随机化?



慕尼黑的夜晚无繁华
浏览 537回答 3
3回答

繁华开满天机

我的解决方案是一个类别方法,该方法返回具有随机元素(使用arc4random)的数组的副本(自动发布)。@interface NSArray (CMRandomised)/* Returns a copy of the array with elements re-ordered randomly */- (NSArray *)randomised;@end/* Returns a random integer number between low and high inclusive */static inline int randomInt(int low, int high){    return (arc4random() % (high-low+1)) + low;}@implementation NSArray (CMRandomised)- (NSArray *)randomised{    NSMutableArray *randomised = [NSMutableArray arrayWithCapacity:[self count]];    for (id object in self) {        NSUInteger index = randomInt(0, [randomised count]);        [randomised insertObject:object atIndex:index];    }    return randomised;}@end
打开App,查看更多内容
随时随地看视频慕课网APP