繁体   English   中英

如何访问存储在 Root.plist 设置包 (Swift) 中的信息

[英]How to access information stored in the Root.plist Settings Bundle (Swift)

我昨天做了一些搜索,但我真的找不到任何能令人满意地回答我的问题的东西。 我正在帮助我的一个朋友,他将应用程序的部分信息存储在 Settings.app 中,设置包中的 Root.plist 文件保存了这些信息。 我以前没有使用此功能的经验,因此我不确定如何获取此信息。 我试过let bundle = NSBundle.mainBundle().pathforResource("Root", ofType: "plist")但这只是返回nil 那么访问这些信息的正确方法是什么?

我正在使用 Xcode 13.4.1 和 Swift 5. 以下是在主包中获取 Root.plist 的代码:

let settingsBundle = Bundle.main.path(forResource: "Settings", ofType: "bundle")
let url = URL(fileURLWithPath: settingsBundle!)
let rootPlist = url.appendingPathComponent("Root.plist").path
let dic = NSDictionary(contentsOfFile: rootPlist)
print(dic ?? "")

第一步是获取主包的“Settings.bundle”的路径。 接下来,为此路径构建一个 URL。 最后一步是将“Root.plist”添加到 url。 我的 print 可以得到我的 Root.plist 内容的内容。

这是基于此发现的另一种用法。 在我的项目中,Settings.bundle 中定义了一些用户默认设置。 这些用户默认设置名称可以本地化。 本地化字符串文件位于此 Settings.bundle 中,与项目或主包路径中的本地化字符串不同。 以下是获取本地化用户默认设置名称的案例:“允许批量删除”。

let settingsBundle = Bundle.main.path(
  forResource: "Settings",
  ofType: "bundle")
let bdl = Bundle(path: settingsBundle!)
let s = NSLocalizedString(
  "rkAllowBulkDelete", 
  tableName: "Root",
  bundle: bdl!, 
  comment: "Localized name for setting \"Allow bulk delete\"")
  print(s)

我认为您正在寻找访问标准用户默认设置的方法,如下所示:

let userDefaults = NSUserDefaults.standardUserDefaults()
let example = userDefaults.boolForKey("mykey")

查看NSUserDefaults文档以获取更多详细信息。

编辑:您可以像这样在标准用户默认设置中获取密钥:

for key in NSUserDefaults.standardUserDefaults().dictionaryRepresentation().keys {
    println(key.description)
}

但是,这可能会给您提供比Root.plist内部更多的键。 另外,您可能想编辑问题并提到要从Root.plist获取密钥列表,因为此处未提及任何类似内容。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM