Skip to main content

Posts

Showing posts with the label core-foundation

Is a "CFRelease” needed if I am using CGImageSourceCreateWithData from a (__bridge)?

My question is very simple, I would like to know if the method "CGImageSourceCreateWithData" creates a new object copying the data I provide so that that I have to release it when I don't need it anymore, or if it just creates a reference to the data I already have so that if I release it I will lose this data (and possibly have bad access errors). The issue is related to using (__bridge CFDataRef) as the source data. Which let's me use Core Foundation objects as toll-free in ARC mode. Consider the following function (or method, not sure how it's called): - (void)saveImageWithData:(NSData*)jpeg andDictionary:(NSDictionary*)dicRef andName:(NSString*)name { [self setCapturedImageName:name]; CGImageSourceRef source ; // Notice here how I use __bridge source = CGImageSourceCreateWithData((__bridge CFDataRef)jpeg, NULL); CFStringRef UTI = CGImageSourceGetType(source); NSMutableData *dest_data = [NSMutableData data]; // And here I use