我试图释放守护进程中分配的资源,或者有人退出进程。
让我们说,
int main(int argc, const char * argv[])
{
Controller *controller = [[Controller alloc] init];
[controller allocateresources];
[[NSRunLoop currentRunLoop] run];
[controller release];
return 0;
}
此处不会调用Controller版本。退出[SIGTERM Signal]只是终止runloop。如何在应用程序结束时释放在类Controller中分配的资源?
编辑:据我所知,系统会将资源退回。我试图解决的问题是跨进程协作锁。
答案 0 :(得分:2)
我认为确实无法保证您将从-run方法返回。所以你不应该依赖它来释放资源。还有其他方法可以做到这一点。例如,一个非常低级的解决方案是实现一个atexit处理程序
https://developer.apple.com/library/mac/#documentation/Darwin/Reference/ManPages/man3/atexit.3.html
并在那里做必要的解锁。