【问题标题】:swift Xcode reading application settingsswift Xcode 读取应用程序设置
【发布时间】:2018-04-29 12:02:24
【问题描述】:

我是 swift/ios 编程的新手。我创建了一个带有设置的小应用程序,但我似乎无法读取值。

        UserDefaults.standard.register(defaults: [String : Any]())

    let settings = UserDefaults.standard;

    let k = Bundle.main.infoDictionary!;

    let b = settings.dictionaryRepresentation()

  let val3 = Bundle.main.object(forInfoDictionaryKey: "digit_preference")


    let value2 = settings.string(forKey: "digit_preference")

我在 Bundle.main.InfoDictionary 或 UserDefaults.standard.dictionaryRepresentation() 中找不到我的设置“digit_preference”

我可以在手机中正确查看我的应用程序设置。 (数字设置为 2)

【问题讨论】:

  • 只是为了澄清,当我尝试访问值时得到“nil”(变量 val3,value2 上面)
  • 您使用“digit_preference”作为访问该值的键,但我在您的plist 中没有看到这样的键,它是一个键为“标识符”的字符串值。此外,该键/值对位于“首选项”数组中的 Dictionary 内,因此您需要首先获取数组的该元素,然后获取值。

标签: ios swift bundle settings userdefaults


【解决方案1】:

您首先需要将文件数据转换为字典,因为根结构是字典。当然,如果您向我们展示的文件实际上是一个 .plist 文件;以下是访问 .plist 文件的方法,但第一步对于您的应用程序包中的几乎所有其他文件类型也很常见。第二步(例如与 .txt、.json 等)不同,具体取决于您想要做什么。

像这样:

guard let idForResource = Bundle.main.path(forResource: "pListFilename", ofType: ".plist"), 
       let dict = NSDictionary(contentsOfFile: idForResource) as? [String: Any] else { 
      return }

然后您可以通过dict 访问变量,就像从任何其他字典中一样。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-12-12
    • 2016-06-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-03
    • 1970-01-01
    • 2016-11-08
    相关资源
    最近更新 更多