zoukankan      html  css  js  c++  java
  • UUID(即GUID)

    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对象,可以释放相应地对象。

  • 相关阅读:
    PHP基础笔记之一
    乱码问题
    PHP函数
    取色工具ColorPix
    框架
    区别和详解:jQuery中的 $().each()和$.each()/jQuery.each()
    区别和详解:jQuery extend()和jQuery.fn.extend()
    H5基于iScroll实现下拉刷新,上拉加载更多....
    重要选择器querySelector和querySelectorAll
    微信对话框小三角形实现
  • 原文地址:https://www.cnblogs.com/benbenzhu/p/3583001.html
Copyright © 2011-2022 走看看