2017-06-27 87 views
1

我必須使用委託方法送回我的VC數據。我怎麼可能存儲它,然後我可以使用它發送給另一個VC?如何使用委託方法發回數據?

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

下面是用於保存我的數據的委託方法中使用的函數。 ArrayName是一個包含我的數據的數組。 Datacollect是收集它的企圖,但沒有獲取存儲在Datacollect

我已經分配Datacollect作爲String陣列。

var Datacollect = [String]() 

如何將數據從ArrayName存儲到我的VC?

+0

難道我用的完成? –

回答

1

有大量的存儲數據的方式和上手簡單的方法之一是使用內置的UserDefaults。

這是如何使用的方法中下面的代碼來存儲您的DataCollect陣列。

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

要檢索你可以使用一個方法中下面的代碼中的數據:

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

伊夫用於'讓DCollect = ArrayName''讓默認= UserDefaults.standard''defaults.set(DCollect,forKey: 「DCollect」)'存儲我的數據,和'讓默認= UserDefaults.standard''讓DCollect =字符串(描述:defaults.array(forKey:「DCollect」))'來呈現它。然後,DCollect的輸出是可選的([收集的數據])'我怎樣才能擺脫可選? –

+1

這是正確的,它是可選的 - 可能沒有任何數據存儲在該密鑰中。 有幾種方法可以處理這個問題,但是我建議重新分配給另一個變量(同名的變量是好的),並且這將解包變量。 所以我們有 默認值= UserDefaults.standard //這是可選的 如果讓defaults = defaults {default = undewrap(不再是可選的)所以去野外! // code here } 對不起格式化 - 似乎很難在評論中得到正確的結果 –