iOS 开发交流

iOS核心图形之CGDataConsumer

2019-01-12  本文已影响12人  Mr__Peng__
概述

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

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

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

注意:使用完成需要释放对象 ,调用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);

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

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

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

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

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

Data Types
CGDataConsumerCallbacks

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

上一篇下一篇

猜你喜欢

热点阅读