UUID(GUID)是Cocoa Touch提供的一种生成唯一标识的机制。类型为CFUUIDRef的对象可以代表UUID,UUID是基于当前时间、计数器和硬件标识(通常是以太网卡的MAC地址)等数据计算生成的。

  UUID不是Objective-C对象,而是由Core Foundation API提供的C结构。Core Foundation是一套C语言API,包含编写应用所学的基本构建,例如字符串、数组对象和字典对象。Core Foundation“类”以CF为前缀,以Ref为后缀,例如CFArrayRef和CFStringRef。

  虽然很多Core Foundation对象都有Objective-C版本(例如NSString是CFStringRef的Objective-C版本),但是CFUUIDRef没有,并且和Objective-C没有任何关联。所以Core Foundation生成的UUID字符串只能是CFUUIDRef,而不会是NSString。

  //创建CFUUID对象,该对象知道如何创建无重复的字符串
CFUUIDRef newUniqueID = CFUUIDCreate(kCFAllocatorDefault); //通过CFUUID对象创建无重复的字符串
CFStringRef newUniqueIDString = CFUUIDCreateString(kCFAllocatorDefault, newUniqueID);
//将创建的无重复字符串赋给Possession对象的imageKey对象
[possession setImageKey:(NSString *) newUniqueIDString]; //之前为创建对象调用的函数,函数名包含"Create",所以需要release新创建的对象
CFRelease(newUniqueIDString);
CFRelease(newUniqueID);

这段代码调用了C函数CFUUIDCreate和CFUUIDCreateString,当C函数的函数名包含英文单词create时,调用方需要负责释放返回的对象。这个向类发送alloc消息:发送alloc消息的那方要负责释放返回对象。通过CFRelease函数并传入Core Foundation对象,可以释放相应地对象。

UUID(即GUID)的更多相关文章

  1. php中生成标准uuid(guid)的方法

    );// "}"        return $uuid;    }}echo guid();?>

  2. UUID、GUID、SID、SUSID

    1. UUID: (Universally Unique Identifier) 通用唯一标识符, 是一个标识符标准用于软件架构,由开放软件基金会(OSF)作为分布式计算环境(DCE)的一部分而制作的 ...

  3. UUID 和 GUID 的区别(转)

    UUID是一个由4个连字号(-)将32个字节长的字符串分隔后生成的字符串,总共36个字节长.比如:550e8400-e29b-41d4-a716-446655440000 http://gohands ...

  4. javascript guid(uuid)

    http://stackoverflow.com/questions/105034/how-to-create-a-guid-uuid-in-javascript function generateU ...

  5. mysql 生成UUID() 即 ORACLE 中的guid()函数

    MYSQL 生成UUID 即 guid 函数-- 带 - 的UUIDselect UUID() -- 去掉 - 的UUIDselect replace(uuid(),'-','') 一个表的数据插入另 ...

  6. go guid 和uuid生成

    1 安装 开始-运行 输入 cmd 回车 输入 go get -u github.com/typa01/go-utils 安装完毕后 2 使用 a 首先引入包 import (      goutil ...

  7. UUID库

    If you cannot afford to use Boost, then there is a very minimal library that I implemented which sim ...

  8. java UUID

    UUID是Universally Unique Identifier的缩写,它是在一定的范围内(从特定的名字空间到全球)唯一的机器生成的标识符.UUID具有以下涵义: 经由一定的算法机器生成 为了保证 ...

  9. PHP 继承,组合,单模式,GUID,等混合实例

    <?php header("Content-type: text/html; charset=utf-8"); header('Access-Control-Allow-Or ...

随机推荐

  1. 初学springMVC的拦截器

    springMvc拦截器的执行顺序! 拦截器的各个方法的作用: /** * 登录验证拦截器 */      public class Intercepter implements HandlerInt ...

  2. Segment Tree

    姑且叫这种数据结构这个名字 #include<iostream> #include<cstdio> #define N 200005 #define Lson ret<& ...

  3. 高级列表控件ListCtrl关联的MFC中的类:CListCtrl

    高级列表控件ListCtrl关联的MFC中的类:CListCtrl■ 报表样式ListCtrl常用操作:1.添加列标题头:InsertColumn2.获取与设置列宽:GetColumnWidth.Se ...

  4. .net core 发布iis 错误

    点击iis功能,例如 点击log日志,提示xxx路径下的web.config错误 百度之后 安装NET Core Windows Server Hosting ->DotNetCore.2.0. ...

  5. block方法加入无效的问题

    +(LDLabel *)labelWithFrame:(CGRect)frame withTitle:(NSString *)title withFont:(float)font withtextCo ...

  6. Javascript"怪异"现象

    下面给大家看个例子,这个毫无疑问打印出10 var a = 10; function test() { console.log(a); } test(); 下面我改动一下 var a = 10; fu ...

  7. (6)sql/puls

    host   在sql/puls中使用cmd或linux操作系统的命令

  8. CodeForces 450B Jzzhu and Sequences 【矩阵快速幂】

    Jzzhu has invented a kind of sequences, they meet the following property: You are given x and y, ple ...

  9. String中的方法

    1.string s1 = "abcdefghij";   string s2 = "kuo";   Console.WriteLine(s1.Clone()) ...

  10. apache去掉目录浏览

    apache去掉目录浏览 apache默认开启目录浏览的,这样大大降低了我们网站的安全,下面是关闭浏览目录: 要禁止 Apache 显示目录结构列表,只需将 Option 中的 Indexes 去掉即 ...