为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕尼黑的夜晚无繁华 2019-10-17 12:55:17
有没有一种规范的方法可以在Objective C中将数组随机化?
查看完整描述

3 回答

?
繁华开满天机

TA贡献1816条经验 获得超4个赞

我的解决方案是一个类别方法,该方法返回具有随机元素(使用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


查看完整回答
反对 回复 2019-10-17
  • 3 回答
  • 0 关注
  • 495 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信