簡體   English   中英

iPhone-釋放CGDataProviderRef時會破壞動態字段嗎

[英]iPhone - When CGDataProviderRef is released does it destroy dynamical fields

我創建了CGDataProviderRef,其中一個參數是像素數組。 當我釋放提供程序時,我是否還必須釋放內存,或者提供程序本身在做內存嗎?

pixels = (Byte *) malloc([data length] * sizeof (Byte));   
CGDataProviderRef provider = CGDataProviderCreateWithData(NULL, pixels, [data length], NULL);

基本上,我必須打電話給:

[provider release];
[free pixels];

當您已經將數據保存在NSData對象中時,可以改用CGDataProviderCreateWithCFData,這樣就不必malloc和復制像素。

如果您堅持使用malloc數組,則可以提供一個在數據提供者發布時調用的回調,如下所示:

void freePixels(void *info, const void *data, size_t size) {
    free((void*)data);
}

CGDataProviderRef provider = CGDataProviderCreateWithData(NULL, pixels, [data length], freePixels);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM