首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >创建唯一字符串Iphone SDK 3.0

问创建唯一字符串Iphone SDK 3.0
EN

Stack Overflow用户
提问于 2009-08-22 10:55:54
回答 3查看 4.4K关注 0票数 0

我想在objective C中(或者在Iphone SDK 3.0的帮助下)创建一个长度不超过15个字符的唯一字符串。

我需要这个mysql表。我知道mysql自动递增会对主键起作用,但我真的需要发送来自Iphone Itself.Every的唯一键,我的表中的记录必须有一个唯一键。

唯一字符串应唯一且由字母数字组成,最多15个字符

先谢谢你,斯里达尔,

EN

回答 3

Stack Overflow用户

发布于 2009-08-23 04:48:40

通常,我建议使用UUID/GUID (如NWCoder does in his link),但是UUID是16字节的原始数据,因此它不能用15字节的数据表示,更不用说15个字母数字字符了。

那么问题就变成了,如何“独一无二”?

只需使用递增的值和无符号整型或十六进制数据就可以很容易地实现表的唯一性。

世界上独一无二的将是更具挑战性的。您可以这样接近:生成一个UUID,然后使用MD5对其进行散列,然后获取尽可能多的位并将其转换为基(10+26+26表示区分大小写,10+26表示不区分大小写),并获取前15个字符。

只对用户是唯一的,但(如您稍后所述)在存在非互联网连接时是唯一的,最容易通过简单地生成15个字母数字的随机字符串来实现。这很可能在功能上等同于上面的UUID/MD5方法-本质上,合并的机会将非常非常小,并且考虑到用户只有少量的行程,基本上没有合并的机会(假设您适当地为随机数生成器播种)。

票数 1
EN

Stack Overflow用户

发布于 2009-08-24 15:22:15

对于这个问题,您缺少一个简单的答案。每个行程都有一个由两个数字组成的主键。

当在iphone上创建trip时,它会获得一个唯一的编号(即1,2,3,4,5)。

当行程与服务器同步时,您可以为iphoen指定一个特殊的唯一编号,该编号位于前面,例如,如果iphone编号为10421,则行程编号变为10421.1、10421.2等。)

这保证了所有的id总是唯一的。

票数 1
EN

Stack Overflow用户

发布于 2009-08-22 21:47:11

这个other stackoverflow answer与此类似,请查看。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1315746

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档