【问题标题】:How to Store Data Sent back using the delegate method?如何存储使用委托方法发回的数据?
【发布时间】:2017-06-27 23:55:56
【问题描述】:

我使用委托方法将数据发送回我的 VC。我怎么可能存储它,然后我可以用它发送给另一个 VC?

func DataToPass(ArrayName: [String]) { //function from delegate
    Datacollect = ArrayName
    print(ArrayName)
}

这是保存我的数据的委托方法中使用的函数。 ArrayName 是一个包含我的数据的数组。 Datacollect 试图收集它,但没有任何东西存储在 Datacollect 中。

我已经将Datacollect 分配为String 数组。

var Datacollect = [String]()

如何将来自ArrayName 的数据存储到我的 VC?

【问题讨论】:

  • 我使用补全吗?

标签: swift uiviewcontroller delegates store


【解决方案1】:

存储数据的方法有很多种,最简单的入门方法之一是使用内置的 UserDefaults。

这就是您可以如何在方法中使用以下代码来存储 DataCollect 数组。

Let defaults = UserDefaults.standard
defaults.set(DataCollect, forKey: "DataCollect")

要检索数据,您可以在方法中使用以下代码:

let defaults = UserDefaults.standard
let DataCollect = defaults.array(forkey: "DataCollect")

【讨论】:

  • 我使用let DCollect=ArrayName let defaults = UserDefaults.standard defaults.set(DCollect, forKey: "DCollect") 来存储我的数据,并使用let defaults = UserDefaults.standard let DCollect = String(describing: defaults.array(forKey: "DCollect")) 来呈现它。然后 DCollect 的输出是optional([collected data]) 我怎样才能摆脱可选的?
  • 它是可选的,这是正确的 - 该密钥中可能没有存储任何数据。有几种方法可以处理这个问题,但我建议重新分配给另一个变量(同名的好),这将解开变量。所以我们有 defaults = UserDefaults.standard // 这是可选的 if let defaults=defaults { //defaults 被解包(不再是可选的)所以去狂野吧! //code here } 抱歉格式化 - 在 cmets 中似乎很难做到这一点
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-11-10
  • 1970-01-01
相关资源
最近更新 更多