Я пытался понять это, обещаю! Существует множество информации об этом, и я все еще погружен в море абстрактных понятий! Это как когда я был ребенком, и никто не мог объяснить мне, почему страна не может просто печатать больше денег и быть по-настоящему богатой. Я не настолько отсталый с большинством этих вещей, но по какой-то причине я не могу обернуть голову вокруг этой концепции, поэтому был бы очень признателен, если бы кто-то мог изложить это как можно более покровительственно «разговаривая с 4-летним» медленно !
Я думаю, что целевое действие имеет для меня полный смысл. Это полезный способ, позволяющий представлению общаться с контроллером, не делая при этом много работы. Насколько я могу судить, объект контроллера эффективно присоединяет слушателя к объекту представления, так что, если в этом представлении происходит определенное событие (то есть нажатие кнопки), он запускает метод контроллера. Это может быть не технически точным, но как абстрактное объяснение имеет смысл для меня.
Итак, последовательность:
- В объекте контроллера создан целевой метод.
- Вид выбран и графически связан с этим методом.
- В этом представлении происходит событие, которое запускает метод из контроллера.
Протоколы и делегаты приводят меня в замешательство. Я знаю, что это как-то связано с тем, что объекты могут разговаривать друг с другом, но я попытался выписать свое (недостаточное) понимание ниже и просто удалил его, так как считаю, что лучше не расставать узлы в моем нынешнем мышлении, а просто протрите планшет и начните заново. Если кто-нибудь может потратить немного времени на объяснение цели
- Использование делегатов / протоколов в отличие от цели / действия
- Составляющие кода и где он живет
- Последовательность событий, которые происходят при использовании процесса
Буду вечно благодарен.
Судя по некоторым комментариям к другим объяснениям, я чувствую, что я не единственный, кто немного потерян, так что, надеюсь, это будет иметь общее значение. Большое спасибо!
Edit:
Хорошо, как я и подумала, может быть, если я просто изложу свое понимание, люди меня поправят, и это может сделать это проще.
Мой образец взят из Apple Docs , с Window в качестве объекта просмотра и WindowDelegate в качестве делегата, где щелчок по кнопке закрытия окна вызывает «должен ли я закрываться?» сообщение делегату.
Составляющие Кодекса:
Окно (Вид)
WindowDelegate (View Controller?)
- Объявите протокол, который делегат может использовать в разделе интерфейса окна (представление).
- Создайте экземпляр делегата в окне.
- Укажите, что WindowDelegate реализует протокол окна, включая: в его интерфейс. (здесь немного шатко?)
- Напишите необходимую реализацию методов в разделе реализации WindowDelegate (View Controller).
- В случае определенного события Window отправит сообщение WindowDelegate с определенной информацией.
- WindowDelegate обработает это и вернет ответ.
Где-нибудь вдоль правильных линий?