简体   繁体   中英

Memory Leaks for typedef struct

I m trying to remove memory leaks. Below is my code.

currentTime = CFAbsoluteTimeGetCurrent();

CFTimeZoneRef currentTimeZone = CFTimeZoneCopyDefault();

todaysDate = CFAbsoluteTimeGetGregorianDate(currentTime, currentTimeZone);


[currentTimeZone release];
currentTimeZone = nil;

Warning:::/myclass.m:87: warning: invalid receiver type 'CFTimeZoneRef'

how to release memory for typedef const struct?

With CFxxxCopyxxx you should use CFRelease .

CFRelease(currentTimeZone);

Edit:

There are CoreFoundation classes that are Toll-Free bridged and your original statement was not leaking but just needed a cast. I would still recommend using CFRelease since you were working directly with CoreFoundation.

[(NSTimeZone*)currentTimeZone release];

From the docs:

If you own an object, it is your responsibility to relinquish ownership (using CFRelease) when you have finished with it.

You're using a CoreFoundation call, so instead of using Cocoa's release , you will want to call:

CFRelease( currentTimeZone);

in order to release the copied data.

try relesing addressBook after allPeople

CFRelease(allPeople); CFRelease(addressBook);

This worked for me.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM