Я следую правилам хранения протокола делегата в файле класса, который содержит свойство делегата.
Следующая схема кода иллюстрирует сохранение протокола с использованием свойства, в котором будет установлен делегат.
MyClass.swift:
protocol MyDelegate: class {
func firstDelegateMethod()
func secondDelegateMethod()
}
class MyClass {
weak var delegate: MyDelegate?
}
Делегаты являются объектами, которые должны соответствовать протоколу и определяются другими классами, а не тот, содержащий протокол.
Полезно помнить, что делегаты - это те, кто делает работу. Они делают то, что необходимо в том, что объявлено в протоколе.
Это может сбивать с толку отслеживать эти отношения, поскольку протокол можно поместить в любом месте. Если вы следуете примеру шаблону, это упростит жизнь и ваш код станет более управляемым.
Что вы подразумеваете под «родственным классом»? –
хорошо вопрос! Класс, который будет называть его. например 'someInstance.someDelegateMethod()' –
Итак, вы конкретно говорите о протоколе _delegate_? –