приветствий,Что такое правильный способ использовать геттеры/сеттеры
Это является продолжением моего предыдущего поста (Incorrect data passed on first click of button). На это был дан ответ, но обновленное редактирование, конечно, произошло.
Мой запрос таков: на данный момент у меня есть две функции IBActions, которые пустые, отсутствуют какой-либо код, и их единственная цель для существования состоит в том, что они подключены к моему другому контроллеру представления и, как таковые, если я удалю я не могу различить, какой из них следует использовать (я понимаю, что, хотя мы можем создавать сегменты между двумя контроллерами представлений, я не думаю, что что-то большее, чем одно имеет смысл (как, как решить, какой из них . с) я отвлекся
Я попытался с помощью следующих в моем коде раньше:.
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);
}
Это где я думал, что, возможно, Я мог бы попытаться создать геттер/сеттер (который быстро делает намного сложнее, чем это должно быть честно). Здесь я потерялся.
Код выглядит следующим образом:
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
. Текущий способ, который у меня есть, хорошо работает, но я хочу знать, как правильно использовать геттеры/сеттеры, и почему то, что у меня не получилось.
Cheers!
его очень трудно понять, что вы делаете, и то, что ваши фактические требования, ваши проблемы похоже, больше с segue, чем getter/setter, и вам совершенно не нужен getter/setter для чего-то подобного, так как вы ничего не вычисляете при получении данных – Tj3n