昨天我做了一些搜索,但我真的找不到任何能满意地回答我的问题的东西。我正在帮助我的一个 friend ,他在 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。我的打印可以获取我的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)
这是 en.lproj\Root.string 文件中 rkAllowBulkDelete 的定义:
...
"rkAllowBulkDelete" = "Allow bulk deletion";
...
关于ios - 如何访问存储在 Root.plist 设置包中的信息 (Swift),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31610552/