Lion がスリープから復帰すると、アプリがクラッシュします。問題は、天気情報を探しているバックグラウンド スレッドにあるようです。よくわかりませんが、クラッシュ ログは、自動解放プールが存在しないオブジェクトをポップしていることを示していると思います。誰かがこれを確認するのを手伝ってくれますか?
クラッシュ ログに関連する詳細は次のとおりです。
プロセス: myApp [14187] 識別子: myApp バージョン:
??? (???) コード タイプ: X86-64 (ネイティブ) 親プロセス: launchd [224]日時: 2011-08-24 18:58:00.581 -0400 OS バージョン: Mac OS X 10.7.1 (11B26) レポート バージョン: 9
クラッシュしたスレッド: 7
例外の種類: EXC_BAD_ACCESS (SIGSEGV) 例外コード: 0x0000000000000010 の KERN_INVALID_ADDRESS
アプリケーション固有の情報: objc[14187]: ガベージ コレクションはオフです
スレッド 7 クラッシュ: 0 libobjc.A.dylib
0x00007fff9321700b (匿名名前空間)::AutoreleasePoolPage::pop(void*) + 385 1
com.apple.CoreFoundation 0x00007fff961306a5 CFAutoreleasePoolPop + 37 2 com.apple.Foundation
0x00007fff969350d7 154 3
com.piso13.opusDomini 0x00000001000acb91 -[Weather internalStart] + 417 4 com.apple.Foundation
0x00007fff9698b1ea -[NSThread main] + 68 5 com.apple.Foundation
0x00007fff9698b162 NSThread _main + 1575 6 libsystem_c.dylib
0x00007fff90b068bf _pthread_start + 335 7 libsystem_c .dylib
0x00007fff90b09b75 スレッド開始 + 13
Weather Internal Start のコードは次のとおりです。
-(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];
}
[プールドレイン] に電話する必要がありますか?