即使在应用程序重新启动后如何存储值?
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/
使用 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/