我的 Mac 应用程序中有一些代码执行长时间运行的导出操作。在导出结束时,它会创建一个用户通知,让用户知道它已完成:
- (NSUserNotification*)deliverNotificationWithSound:(NSString*)sound title:(NSString*)title messageFormat:(NSString*)message {
NSUserNotification * note = [NSUserNotification new];
note.soundName = sound;
note.title = title;
note.informativeText = [NSString stringWithFormat:message, NSRunningApplication.currentApplication.localizedName, self.document.displayName];
note.userInfo = @{ @"documentFileURL": self.document.fileURL.absoluteString };
[NSUserNotificationCenter.defaultUserNotificationCenter deliverNotification:note];
return note;
}
然后它会放置一张包含导出详细信息的表格(遇到的警告,方便的“显示”按钮等)。当他们关闭工作表时,我想删除通知,如下所示:
[NSUserNotificationCenter.defaultUserNotificationCenter removeDeliveredNotification:note];
但是,这实际上并没有从通知中心删除通知。我设置了一个断点;该-removeDeliveredNotification:
行已运行,并且note
不为零。是什么赋予了?