首页 > 其他 > 详细

UUID(即GUID)

时间:2014-03-06 04:45:21      阅读:517      评论:0      收藏:0      [点我收藏+]

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。

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

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

UUID(即GUID),布布扣,bubuko.com

UUID(即GUID)

原文:http://www.cnblogs.com/benbenzhu/p/3583001.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!