DLog宏,“在没有池的情况下自动释放 - 只是泄漏”ios 4.3中的错误

时间:2012-03-03 22:18:08

标签: objective-c ios xcode

[这不是DLog,它是一个单独的线程。见下面的编辑/评论]

XCode 4.3 我正在使用通用预处理器宏进行调试日志记录:

#ifdef DEBUG
#   define DLog(fmt, ...) NSLog((@"%s [Line %d] " fmt), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__); 
#else
#   define DLog(...)
#endif

在iOS 5.0下编译/工作正常,但是当我在iOS 4.3下运行时,我得到了大量的“自动释放,没有池到位 - 只是泄漏”错误,无论何时执行DLog。尝试重新启动,没有帮助。

我闹鬼,还是有解决方案? TIA。

[编辑1]

忘记提及它是一个ARC项目。唯一的自动释放池是main.m中的默认值:

@autoreleasepool {
    int retVal = UIApplicationMain(argc, argv, nil, nil);
    return retVal;
}

我的任何DLog使用都没有什么特别之处,事实上,当我简单地把应用程序启动时触发错误

DLog(@"didFinishLaunchingWithOptions");

[编辑2]

抱歉,这不是导致问题的DLog。这是我的第一行:

BOOL customDates = [[defaults objectForKey:@"custom_dates"] boolValue];

控制台报告:

  

* __NSAutoreleaseNoPool():类NSCFBoolean的对象0x15cca20自动释放,没有池到位 - 只是泄漏

我仍然对所有这些泄漏消息感到困惑,因为我认为我们不需要担心使用ARC进行自动释放。那它的问题是什么?

0 个答案:

没有答案