UUID(即GUID)
2014-03-05 17:59
471 查看
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。
这段代码调用了C函数CFUUIDCreate和CFUUIDCreateString,当C函数的函数名包含英文单词create时,调用方需要负责释放返回的对象。这个向类发送alloc消息:发送alloc消息的那方要负责释放返回对象。通过CFRelease函数并传入Core Foundation对象,可以释放相应地对象。
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对象,可以释放相应地对象。
相关文章推荐
- CFUUIDRef theUUID = CFUUIDCreate(NULL); CFStringRef guid = CFUUIDCreateString(NULL, theUUID);
- flash as3 GUID UUID 生成类
- 关于UUID,GUID,OCMB
- postgreSQL生成UUID(GUID)
- 《Filter type 的对应GUID》 + 《COM中 GUID和UUID、CLSID、IID》
- 基于PHP的UUID/GUID/uniqid替换方法及其可靠性论述
- COM中GUID和UUID、CLSID、IID
- C++:在程序中获取全球唯一标识号(GUID或UUID)
- COM中GUID和UUID、CLSID、IID
- Linux查看磁盘/硬盘各分区的UUID(GUID)
- GUID和UUID、CLSID、IID 区别及联系
- Java 产生 GUID / UUID
- 生成UUID、GUID
- php中生成标准uuid(guid)的方法
- 如何在Java中生成UUID / GUID
- MySQL InnoDB Primary Key Choice: GUID/UUID vs Integer Insert Performance
- 关于UUID(GUID)
- iOS 生成 UUID(GUID)
- UUID/GUID的生成封装(Win32/Linux)
- 利用GUID/UUID生成token及验证token的正确性