![](/img/trans.png)
[英]How to give Placeholder for TextField of Settings Bundle (Root.plist)
[英]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.