cocoa 即使我有睡眠线程,应用程序退出代码也不会执行

cocoa app exit code wont execute even if i had sleep thread

我正在尝试在应用程序退出时保存对我的应用程序的偏好 但代码不会 运行 我尝试了差异代码和相同的结果

func applicationShouldTerminate(_ sender: NSApplication) -> NSApplication.TerminateReply {
    //   print(arrayOfUsernamesList)
    UserDefaults.standard.setValue("prefs1", forKey: "preferences")
    return .terminateNow
}

这是错误的委托方法,请使用 applicationWillTerminate

并且从不使用setValue(_:forKey将内容保存到UserDefaults。始终使用通用 set(_:forKey

func applicationWillTerminate(_ aNotification: Notification)
{
    UserDefaults.standard.set("prefs1", forKey: "preferences")
}