【问题标题】:Saving variables in applescript using plist's within application xcode使用应用程序 xcode 中的 plist 在 applescript 中保存变量
【发布时间】:2017-08-23 16:28:47
【问题描述】:

如何让我的脚本写入属性列表文件,而无需在用户计算机上创建“.plist”文件,而是直接在当​​前应用程序中?

【问题讨论】:

  • 您是否正在尝试创建类似于“内存中”PLIST 文件的东西,它永远不会写入磁盘?还是你追求别的?如果您正在寻找“内存中”的信息集合,为什么要专门使用 PLIST 文件,因为那时您可能正在寻找NSDictionary
  • @Fahim 我正在尝试保存简单的变量,例如短字符串和一些布尔值。
  • 抱歉,我的意思是,使用 PLIST 格式是否有特定原因?如果您不将文件写入磁盘,您不能使用NSDictionary 代替吗?

标签: xcode macos applescript nsapplescript


【解决方案1】:

plist 文件是根据用户默认值创建的。所以你需要在那里保存你的值。

创建一个属性来缩短顶部的文字

property NSUserDefaults : class "NSUserDefaults" of current application

NSUserDefaults's standardUserDefaults()'s setObject_forKey_(yourValue, yourKey)

阅读

NSUserDefaults's standardUserDefaults()'s object_forKey(yourKey) 

例子

property NSUserDefaults : class "NSUserDefaults" of current application

set mytext to "Hello"

-- write
NSUserDefaults's standardUserDefaults()'s setObject_forKey_(mytext, "MyKey")

-- read it with
log NSUserDefaults's standardUserDefaults()'s object_forKey_("MyKey")
-- Hello

这是未经测试的,因为我现在没有 Mac。但它应该可以工作。

编辑

要设置标准值,请在应用程序的 appDelegate 方法 applicationWillFinishLaunching:aNotification 中执行以下操作(不要忘记声明上述属性):

on applicationWillFinishLaunching:aNotification
    set prefs to {MyKey:"Hello", SomeOtherKey:true}
    NSUserDefaults's standardUserDefaults()'s registerDefaults_(prefs)
end

【讨论】:

  • 如何创建一个可更改的默认设置为布尔值,并写入该值?我对“日志”没有任何经验,但是如何将全局变量设置为我之前设置为“用户默认值”的任何值?
  • 更新了答案。使用日志,您可以将值输出到控制台。 Log 适用于 ASOC 项目,而对于纯 OBJC 项目,您只能使用 NSLog。如果你不知道日志,你应该花一些时间调试
  • 我可以使用此代码将脚本中的变量设置为用户默认值吗?像这样:set theVariable to NSUserDefaults's standardUserDefaults()'s object_forKey_("MyKey")
  • 我可以在我的脚本中这样做吗:set theVariable to NSUserDefaults's standardUserDefaults()'s object_forKey_("MyKey")
  • 是的。删除一个下划线。为什么要问而不只是尝试?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-10-23
  • 2016-04-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多