iOS数组乱序

公司项目首页有个双排的collectionView,今天给了需求要求每个用户打开第一页显示的6条数据都不一样,也就是要将服务端返回的数据乱序排列,苦思冥想了许久,最终使用了一个while完成了需求,下面直接上代码,原理注释中有

/*
 *  @brief 将数组随机打乱
 */
- (NSArray *)gk_randomArray {
    // 转为可变数组
    NSMutableArray * tmp = self.mutableCopy;
    // 获取数组长度
    NSInteger count = tmp.count;
    // 开始循环
    while (count > 0) {
        // 获取随机角标
        NSInteger index = arc4random_uniform((int)(count - 1));
        // 获取角标对应的值
        id value = tmp[index];
        // 交换数组元素位置
        tmp[index] = tmp[count - 1];
        tmp[count - 1] = value;
        count--;
    }
    // 返回打乱顺序之后的数组
    return tmp.copy;
}

该方法循环次数为数组的长度,如有其他更好的方法还望告知

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 翻译自“Collection View Programming Guide for iOS” 0 关于iOS集合视...
    lakerszhy阅读 9,330评论 1 22
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,764评论 25 709
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,993评论 18 399
  • 本人女,30岁,未婚,而且还没有男朋友,也没有想嫁就有人娶的备胎。 好像30岁就是一个巨大的槛,之前自己不着急,家...
    nishanglili阅读 2,563评论 0 0
  • 2016年底了,刷着微博,浏览简书,很多人都在晒着书单。有一年读二三十本书的,五六十本书的,多的百本之外。很是羡慕...
    2eb5647aa10d阅读 1,352评论 0 0