在NSDictionary中随机输入

sta*_*lew 3 iphone nsdictionary nsset ios

有没有办法在NSDictionary中获取完全随机的密钥?

NSString *key = [enumeratorForKeysInDictionary nextObject]; 
Run Code Online (Sandbox Code Playgroud)

我有这个代码以非随机方式迭代字典.

我应该将所有密钥添加到NSSet然后从那里随机拉出来吗?

有没有更有效的方法来做到这一点?

Bes*_*der 6

看到这个:

NSArray *array = [dictionary allKeys];
int random = arc4random()%[array count];
NSString *key = [array objectAtIndex:random];
Run Code Online (Sandbox Code Playgroud)

  • 你不需要用`arc4random`调用`srandom`,但你应该考虑使用`arc4random_uniform([array count])`来避免模偏差 (7认同)
  • `[dictionary.allKeys objectAtIndex:arc4random()%dictionary.allKeys.count];` (3认同)