![](/img/trans.png)
[英]How to convert NSData to CGDataProviderRef on iphone sdk?
[英]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.