我的应用程序在Lion上崩溃时,它从睡眠中醒来。 这个问题似乎与后台线程正在寻找天气信息。 我不知道,但我觉得崩溃日志告诉我,自动释放池弹出不再有对象,有人可以帮助我确认这一点?帮助崩溃日志
这里是崩溃日志有关的详情:
过程:对myApp [14187]标识符:对myApp版本:
??? (???)编码类型:X86-64(母语)父进程:的launchd [224]日期/时间:2011-08-24 18:58:00.581 -0400 OS版本:的Mac OS X 10.7 0.1(11B26)报告版本:9
崩溃螺纹:7
异常类型:EXC_BAD_ACCESS(SIGSEGV)异常代码: KERN_INVALID_ADDRESS在0x0000000000000010
特定应用信息:objc [14187]:垃圾收集是 OFF
螺纹7毁损:0 libobjc.A.dylib
0x00007fff9321700b(匿名 命名空间):: AutoreleasePoolPage ::弹出(无效*)+ 385 1
com.apple.CoreFoundation 0x00007fff961306a5 CFAutoreleasePoolPop + 37 2 COM。 apple.Foundation
0x00007fff969350d7 - [NSAutoreleasePool漏极] + 154 3
com.piso13.opusDomini 0x00000001000acb91 - [天气 internalStart] + 417 4 com.apple.Foundation
0x00007fff9698b1ea - [NSThread主] + 68 5 com.apple 。基础
0x00007fff9698b162 NSThread _main + 1575 6 libsystem_c.dylib
0x00007fff90b068bf _pthread_start + 335 7 libsystem_c.dylib
0x00007fff90b09b75 thread_start + 13
这里是我的天气内部启动代码:
-(void)internalStart{
pool = [[NSAutoreleasePool alloc] init];
forecast = FALSE;
liveweather = FALSE;
NSString *query = [self generateQuery];
if (query == nil) {
[pool drain];
return;
}
XmlWrapper * xmlWrapper = [[XmlWrapper alloc] initWithQuery:query delegate:self name:@"liveweather"];
[xmlWrapper release];
query = [self generateForecastQuery];
xmlWrapper = [[XmlWrapper alloc] initWithQuery:query delegate:self name:@"forecast"];
[xmlWrapper release];
[pool drain];
}
我是否应该打电话给[pool drain]?
这里没有看起来错......你可以展示一些'generateForecastQuery'或'generateQuery'吗?或者,也许你的'XmlWrapper'类? – jtbandes
你从哪里复制了该崩溃日志?这全是错误的。请将它从原始崩溃日志文件复制到〜/ Library/Logs文件夹中,并编辑您的问题以包含带有代码格式的文本。 –
创建它们时立即释放您的XMLWrapper对象是一个红旗。你为什么做这个? –