これは、で指定されているセレクターの本体です。NSThread +detachNewThreadSelector:(SEL)aSelector toTarget:(id)aTarget withObject:(id)anArgument
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; ながら (やる) { もし (doItForSure) { NSLog(@"チェック"); doItForSure = NO; (void)gettimeofday(&start, NULL); /* 何かをする */ // 次の行は "_NSAutoreleaseNoPool():" メッセージをログに出力します CGImageRef screenImage = UIGetScreenImage(); /* 他のことをする */ (void)gettimeofday(&end, NULL); 経過 = ((double)(end.tv_sec) + (double)(end.tv_usec) / 1000000) - ((double)(start.tv_sec) + (double)(start.tv_usec) / 1000000); NSLog(@"経過時間: %e", 経過); [プールドレイン]; } } [プール解放];
自動解放プールが存在する場合でも、次のように呼び出すと、これがログに出力されますUIGetScreenImage()
。
2010-05-03 11:39:04.588 ProjectName[763:5903] *** _NSAutoreleaseNoPool(): クラス NSCFNumber のオブジェクト 0x15a2e0 がプールなしで自動解放されました - ちょうどリークしています
他の誰かがUIGetScreenImage()
別のスレッドでこれを見たことがありますか?