[这不是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进行自动释放。那它的问题是什么?