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.