Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 即使我有睡眠线程,cocoa应用程序退出代码也不会执行_Swift_Cocoa - Fatal编程技术网

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

Swift 即使我有睡眠线程,cocoa应用程序退出代码也不会执行,swift,cocoa,Swift,Cocoa,我正在尝试在应用程序退出时保存应用程序上的引用 但代码无法运行 我尝试了不同的代码和相同的结果 func applicationShouldTerminate(_ sender: NSApplication) -> NSApplication.TerminateReply { // print(arrayOfUsernamesList) UserDefaults.standard.setValue("prefs1", forKey: "preferences")

我正在尝试在应用程序退出时保存应用程序上的引用 但代码无法运行 我尝试了不同的代码和相同的结果

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

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

从不使用
setValue(:forKey
将内容保存到
UserDefaults
。始终使用通用
集(:forKey

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

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

从不使用
setValue(:forKey
将内容保存到
UserDefaults
。始终使用通用
集(:forKey

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

@MohmmadS
setValue
是一种键值编码方法,具有特殊的功能和开销。只有在您确实需要KVC时才使用KVC方法(在这种情况下永远不会)。当我使用exit(0)关闭应用程序时,它不会调用该函数。除exit(o)ext外,是否还有其他功能关闭应用程序?为什么
exit(0)
?这是用于CLI的。通常的方法是调用委托方法的
NSApp.terminate(nil)
。@MohmmadS
setValue
是一种具有特殊功能和开销的键值编码方法。仅当您确实需要KVC时才使用KVC方法(在这种情况下永远不会)。当我使用exit(0)时要关闭应用程序,它不会调用该函数。除exit(o)ext外,是否还有其他方法关闭应用程序?为什么
exit(0)
?这是用于CLIs的。通常的方法是调用委托方法的
NSApp.terminate(nil)