我正在处理macOS应用程序。当它运行以下代码行时,可能会被OS中的单个信号终止。我的意思是,有时它将在几次之后终止,但有时效果很好。 正如我研究的那样,这不是应用程序本身的崩溃。这是由于OS向其发送信号(9)而导致应用程序必须退出。但是我不知道为什么会这样。一些博客说这与内存有关。但是该应用程序根本不需要太多内存。
[self.delegateQueue addOperationWithBlock:^{
[delegate session:self connectionFailedWithError:error];
}];
delegateQueue这里是[NSOperationQueue mainQueue],此行使该块在应用程序的主线程中执行,因为它将为用户带来警报窗口(UI更改)。
在[委托会话:自我connectionFailedWithError:error]中,以下代码将运行
NSAlert *alert = [[NSAlert alloc] init];
alert.messageText = NSLocalizedString(@"Connection Failed", nil);
alert.informativeText = [NSString stringWithFormat:NSLocalizedString(@"Connection Failed Message", @"Failed ot connect to {host name}. Error: {localized error description}"),
session.hostName,
error.localizedDescription];
[alert runModal];
我只想在发生错误时向用户显示警报。为什么操作系统会在错误发生并且警报出现几次后向应用发送信号?