美文网首页iOS 开发交流
iOS核心图形之CGDataConsumer

iOS核心图形之CGDataConsumer

作者: Mr__Peng__ | 来源:发表于2019-01-12 13:32 被阅读12次
    概述

    数据写入任务的抽象对象,消除了管理原始内存缓冲区的需要,。

    Creating Data Consumers
    CGDataConsumerRef CGDataConsumerCreate(void *info, const CGDataConsumerCallbacks *cbks);
    

    创建使用回调函数写入数据的数据消费者
    参数:

    • info
      指向任何类型或NULL数据的指针。当调用回调时,Core Graphics将这个指针作为info参数传递(比如 CFMutableDataRef)。
    • callbacks
      指向结构的指针,该结构指定要实现的回调函数,用于复制发送给使用者的数据并处理使用者的基本内存管理。详见下方CGDataConsumerCallbacks

    注意:使用完成需要释放对象 ,调用CGDataConsumerRelease

    CGDataConsumerRef CGDataConsumerCreateWithURL(CFURLRef url);
    

    创建一个数据使用者,该数据使用者将数据写入URL指定的位置。

    注意:使用完成需要释放对象 ,调用CGDataConsumerRelease

    CGDataConsumerRef CGDataConsumerCreateWithCFData(CFMutableDataRef data);
    

    创建写入CFData对象的数据使用者。
    当需要将核心图形数据表示为CFDataRef类型时,可以使用此函数。例如,您可以创建CFDataRef对象,然后将其复制到粘贴板。

    注意:使用完成需要释放对象 ,调用CGDataConsumerRelease

    Getting the CFType ID
    CFTypeID CGDataConsumerGetTypeID(void);
    

    返回核心图形数据使用者的核心基础类型标识符。

    Retaining and Releasing Data Consumers
    CGDataConsumerRef CGDataConsumerRetain(CGDataConsumerRef consumer);
    

    增加数据使用者的保留计数。

    这个函数等价于CFRetain,只是如果使用者参数为NULL,它不会导致错误。

    void CGDataConsumerRelease(CGDataConsumerRef consumer);
    

    引用计数-1

    CFRelease一样,但这个传NULL不会报错

    Callbacks
    typedef size_t (*CGDataConsumerPutBytesCallback)(void *info, const void *buffer, size_t count);
    

    将数据从核心图形提供的缓冲区复制到数据使用者。

    • info
      回调函数之间共享的私有数据的通用指针。
    • buffer
      复制指定字节数的缓冲区。
    • count
      要复制的字节数。
      返回值:复制的字节数。如果不能向使用者写入更多数据,则应返回0。

    Core Graphics准备好向使用者发送数据时,将调用函数。它应该将指定的字节数从缓冲区复制到您控制的某个资源中—例如,一个文件。

    typedef void (*CGDataConsumerReleaseInfoCallback)(void *info);
    

    释放与数据使用者关联的任何私有数据或资源。

    • info
      回调函数之间共享的私有数据的通用指针。

    Core Graphics释放具有相关release函数的数据使用者时,将调用release函数。

    Data Types
    CGDataConsumerCallbacks
    

    结构体,包含指向回调函数的指针,回调函数管理数据使用者的数据复制。
    CGDataConsumerCallbacks结构指定的函数负责复制核心图形发送给使用者的数据,并处理使用者的基本内存管理。
    结构体有俩个属性:

    • putBytes : CGDataConsumerPutBytesCallback
      指向将数据复制到数据使用者的函数的指针
    • releaseConsumer : CGDataConsumerReleaseInfoCallback
      指向处理数据使用者清理的函数的指针,或NULL。

    相关文章

      网友评论

        本文标题:iOS核心图形之CGDataConsumer

        本文链接:https://www.haomeiwen.com/subject/newqdqtx.html