我试图释放在守护进程结束时分配的资源,或者如果有人退出进程。在NSRunLoop结束时释放资源
比方说,
int main(int argc, const char * argv[])
{
Controller *controller = [[Controller alloc] init];
[controller allocateresources];
[[NSRunLoop currentRunLoop] run];
[controller release];
return 0;
}
这里控制器版本将不会被调用。退出[SIGTERM信号]只是终止runloop。如何在应用程序结束时释放在类Controller中分配的资源?
编辑:我知道系统会声称资源回来。事情,我试图解决的是像跨进程合作锁。
如果应用程序正在结束,您确实不需要担心发布任何内容,因为系统将从应用程序中收回所有内容。但通常你会创建并调用一个dealloc方法。 (使用MRC而不是ARC)和runloop一样,你也可以使用autorelease。 – uchuugaka 2013-04-04 12:00:57
你不需要。 – 2013-04-04 12:01:30
@uchuugaka我试图使用autorelease池。它不调用dealloc方法。 NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init]; Controller * controller = [[[Controller [alloc] init] autorelease]; [[NSRunLoop currentRunLoop] run]; [pool drain]; – MacGeek 2013-04-04 12:17:53