即使在应用程序重新启动后如何存储值?

How to store values even after the application restarts?

使用 ApplescriptObjC 创建应用程序时,您可以像这样创建 属性:

property myValue : "value"

但是,如果我更改此变量的值,则每当应用程序重新启动时它都会设置回 "value"。我如何存储值,以便它们在应用程序重新启动后不会被重置?

您需要在应用程序退出之前将您的值存储在某处。使用 NSUserDefaults 是最好的方法:

property NSUserDefaults : ((current application)'s NSUserDefaults's standardUserDefaults)

要保存您的值,请使用以下代码,其中 myKey 可以是任何字符串,而 val 是您想要的值保存:

NSUserDefaults's setObject:val forKey:myKey

稍后要检索您的值,您可以使用:

NSUserDefaults's objectForKey:myKey

顺便说一句,NSUserDefaults 有几个有用的函数来获取值,具体取决于存储的数据类型。例如,如果要存储布尔值,则可以使用 "boolForKey:".

但是,您应该为您的密钥设置一个默认值,以防它以前从未保存过。这必须在尝试检索密钥值之前完成,其中 defVal 是默认值:

NSUserDefaults's registerDefaults:((current application)'s NSDictionary's dictionaryWithObject:defVal forKey:myKey)

如果您想了解更多关于 NSUserDefaults 的信息,可以在这里阅读:https://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/Classes/NSUserDefaults_Class/