typedef结构的内存泄漏

时间:2011-07-13 13:37:39

标签: iphone objective-c memory-leaks

我试图消除内存泄漏。以下是我的代码。

currentTime = CFAbsoluteTimeGetCurrent();

CFTimeZoneRef currentTimeZone = CFTimeZoneCopyDefault();

todaysDate = CFAbsoluteTimeGetGregorianDate(currentTime, currentTimeZone);


[currentTimeZone release];
currentTimeZone = nil;

警告::: / myclass.m:87:警告:无效的接收器类型'CFTimeZoneRef'

如何为typedef const struct释放内存?

4 个答案:

答案 0 :(得分:6)

使用CFxxxCopyxxx,您应该使用CFRelease

CFRelease(currentTimeZone);

修改

CoreFoundation个类Toll-Free bridged并且您的原始声明没有泄漏但只需要演员。我仍然建议您使用CFRelease,因为您直接使用CoreFoundation。

[(NSTimeZone*)currentTimeZone release];

答案 1 :(得分:0)

来自文档:

  

如果你拥有一个物品,你有责任放弃   完成后的所有权(使用CFRelease)。

答案 2 :(得分:0)

您正在使用CoreFoundation调用,因此您不想使用Cocoa的release,而是要调用:

CFRelease( currentTimeZone);

以释放复制的数据。

答案 3 :(得分:0)

在所有人之后尝试重新发送地址簿

CFRelease(allPeople);     CFRelease(地址簿);

这对我有用。