生成一个唯一的字符串

时间:2012-03-16 07:40:56

标签: php objective-c math

我在另一篇文章中找到了关于如何生成随机数的答案:

-(NSString *) genRandStringLength:(int)length 
 {
  NSString *letters = @"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";


NSMutableString *randomString = [NSMutableString stringWithCapacity: length];

for (int i = 0; i < length; i++) {
    [randomString appendFormat: @"%c", [letters characterAtIndex: rand()%[letters     length]]];
}

return randomString;
 }

我制作游戏并需要为每场比赛生成一个唯一的ID。如果我每天有100,000个新的比赛(当比赛完成,它被删除并且其唯一ID可以重复使用),在上面的代码中使用什么是安全的长度,以确保不会有任何冲突(2匹配相同的ID)?或者是否有更好的方法来生成唯一ID?

我想尝试保持长度以保持性能,因为它将来回发送到服务器。

由于

1 个答案:

答案 0 :(得分:5)

为什么不使用UUID,这在世界范围内应该是全球唯一的(在合理范围内 - 因为碰撞的可能性非常低,对你来说当然很好)。

可以找到Objective-C示例here