Salutations,什麼是使用getter/setters的正確方法
這是我以前的文章(Incorrect data passed on first click of button)的後續。它被回答了,但是更新過的編輯發生了。
我的查詢如下,目前我有兩個IBActions funcs,它們是空的,缺少任何類型的代碼,它們存在的唯一目的是它們連接到我的其他視圖控制器,因此如果我刪除他們我沒有辦法區分應該使用哪個segue(我的理解是,雖然我們可以在兩個視圖控制器之間創建segges,但我認爲只有一個纔有意義(例如,如何決定哪個應該去哪。用),我離題
我試圖用我的代碼如下之前:
self.performSegue(withIdentifier: "slideTwo", sender: self);
這但是,它確實會導致雙重繼續。因此,我決定爲以下幾點:
override func prepare(for segue: UIStoryboardSegue, sender: Any?)
{
let passedPic = segue.destination as! ViewControllerTwo;
if(segue.identifier == "slideOne") {
passedPic.picsChosen = sLS1;
} else {
passedPic.picsChosen = sLS2;
}
}
這個效果很好,做什麼,我需要的,但後來我有兩個空IBActions的問題:
@IBAction func slideShowOne() {
}
@IBAction func slideShowTwo() {
//self.performSegue(withIdentifier: "slideTwo", sender: self);
}
這是我想也許我可以嘗試創建一個getter/setter(這使得swift比真正的應該更復雜)。這是我迷失的地方。
的代碼如下:
var picsChosen : [String] {
set(newData) {
for index in 0..<newData.count {
print("Index is: ", newData[index]);
}
self._picsChosen = newData;
} get {
return self._picsChosen;
}
}
現在,我的問題是雙重的。首先,實際訪問並將值傳遞給我的變量的正確方法是什麼?我試着這樣做:myClass: ViewControllerTwo! = ViewControllerTwo();
然後用myClass.picsChosen = myArray;
然而,儘管它確實出現了數據被成功地傳遞到我的VC2,因爲顯示我遍歷(二傳手內)我看到成功的價值觀的時候,當我嘗試訪問picsChosen
以外,我得到一個索引越界錯誤,換句話說,該值從未與picsChosen
相關聯。目前我擁有它的方式運作良好,但我想知道使用getters/setter的正確方法是什麼,以及爲什麼我沒有工作。
乾杯!
它很難理解你在做什麼,什麼是你的實際需求,你的問題看起來像更多的是比getter/setter,而你完全不需要getter/setter這樣的東西,因爲你不計算任何東西時得到的數據 – Tj3n