Get n random objects (for example 4) from nsarray

后端 未结 3 681
礼貌的吻别
礼貌的吻别 2020-12-29 11:31

I have a large NSArray of names, I need to get random 4 records (names) from that array, how can I do that?

3条回答
  •  天命终不由人
    2020-12-29 11:57

    #include 
    
    NSArray* names = ...;
    NSMutableArray* pickedNames = [NSMutableArray new];
    
    int remaining = 4;
    
    if (names.count >= remaining) {
        while (remaining > 0) {
           id name = names[arc4random_uniform(names.count)];
    
           if (![pickedNames containsObject:name]) {
               [pickedNames addObject:name];
               remaining--;
           }
        }
    }
    

提交回复
热议问题