В ниже функции Я пытаюсь вернуть UIImage
указатель, который создается из NSData
NSData получения освободило Eventhough его использовал
- Когда я даю вариант
freeWhenDone = YES
UIImage
отображается вернулся отсюда белое изображение. Когда я даю опцию
freeWhenDone = NO
UIImage
вернулся форму здесь показывает, как черное изображение.- Когда я передаю
rgb_buffer
(массив символов) вместо[rgbData bytes]
функция1 и функция2 работают правильно. Все отлично.
ли что-то сделать с ARC?
Myfunction
{
char *pu1_out_buffer = malloc(length);
int width, height, stride;
char *rgb_buffer = malloc(BUFFER_LENGTH);
pu1_out_buffer = datafromfile(FILE_PATH) // initialized with some data , not important
/* rgb NSdata created from malloced rub buffer */
NSMutableData *rgbData = [NSMutableData dataWithBytesNoCopy:rgb_buffer
length:(u4_stride * u4_height * 3)
freeWhenDone:YES];
[self function1:pu1_out_buffer
rgb_buffer:(UWORD16 *)[rgbData bytes]
…]
free(pu1_out_buffer);
UIImage *outUIImage = [self function2:rgbData
width:u4_width
height:u4_height
stride:u4_stride];
return outUIImage;
}
Из любопытства: зачем вам нужно использовать динамическое распределение памяти (malloc's)? –
Невозможно ответить, почему ваше изображение является белым или черным, не зная 'function1',' function2'. –
Несвязанный, но 'pu1_out_buffer = datafromfile (FILE_PATH)' = недопустимый синтаксис и утечка памяти. 'MyFunction {' также недействителен, если только макрос, пожалуйста, отправьте реальный пример. – Joe