iOS 细谈 UUID

先来摘抄一段百度百科的资料:
UUID含义是通用唯一识别码 (Universally Unique Identifier),这 是一个软件建构的标准,也是被开源软件基金会 (Open Software Foundation, OSF) 的组织应用在分布式计算环境 (Distributed Computing Environment, DCE) 领域的一部分。

UUID是指在一台机器上生成的数字,它保证对在同一时空中的所有机器都是唯一的。通常平台会提供生成的API。按照开放软件基金会(OSF)制定的标准计算,用到了以太网卡地址、纳秒级时间、芯片ID码和许多可能的数字
UUID由以下几部分的组合:
(1)当前日期和时间,UUID的第一个部分与时间有关,如果你在生成一个UUID之后,过几秒又生成一个UUID,则第一个部分不同,其余相同。
(2)时钟序列。
(3)全局唯一的IEEE机器识别号,如果有网卡,从网卡MAC地址获得,没有网卡以其他方式获得。
UUID的唯一缺陷在于生成的结果串会比较长。关于UUID这个标准使用最普遍的是微软的GUID(Globals Unique Identifiers)。在ColdFusion中可以用CreateUUID()函数很简单地生成UUID,其格式为:xxxxxxxx-xxxx- xxxx-xxxxxxxxxxxxxxxx(8-4-4-16),其中每个 x 是 0-9 或 a-f 范围内的一个十六进制的数字。而标准的UUID格式为:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx (8-4-4-4-12),可以从cflib 下载CreateGUID() UDF进行转换。

同一台设备上的每个app都有不同的uuid。而且每个app 不同时间打开,都可以通过上面的代码生成不同的UUID,但是可以将第一次打开app生成的uuid保存起来。这个uuid没啥其他作用,关键就在它具有全世界唯一性,会重复,但重复概率可以忽略为0。

如果想保证 UUID 的唯一性,请将 UUID 保存在 keychain 中。具体操作,本人没有验证没有发言权。可以参考 iOS设备UUID的获取方法(不变的唯一值)。

本文抄自 iOS 关于UUID的理解

你可能感兴趣的:(iOS 细谈 UUID)