我已将委托发回的数据存储为用户默认值,并且我正在尝试准备将其发送到 segue 中。我可以在 segue 中发送它,我遇到的问题是数据以"optional[Data]"
我知道可选含义的形式出现,但它不会让我像可选的那样解开 UserDefault,即使它说它是可选的?
这是代码:
func DataToPass(ArrayName: [String]) {
print("Check ArrayContent--->",ArrayName)
var DCollect = [String]()
var CCollect = [String]()
DCollect.append(ArrayName[0])
CCollect.append(ArrayName[1])
let defaults = UserDefaults.standard
if let unwrap = defaults{
unwrap.set(DCollect, forKey: "DCollect")
unwrap.set(CCollect, forKey: "CCollect")
}
}
错误是:
“条件绑定的初始化程序必须具有可选类型,而不是'UserDefaults'”在线
if let unwrap = defaults{
为什么我不能像这样解开它?
另一种尝试:
func DataToPass(ArrayName: [String]) {
print("Check",ArrayName)
UserDefaults.standard.set(ArrayName, forKey: "ToCollect")
}
override func prepare(for segue: UIStoryboardSegue, sender: Any?){
if segue.identifier == "SegueInfo"{
let firstController = segue.destination as! ViewController
if let Tosend = UserDefaults.standard.value(forKey:
"ToCollect") as? String {
Collect.append(Tosend)
}
firstController.AllData = Collect
}
这种方式没有附加任何内容,Tosend 是空的吗?