Функции протокола в отдельных файлах - PullRequest
0 голосов
/ 08 мая 2018

Я пытаюсь организовать свой проект, и мне было интересно, возможно ли то, что я собираюсь объяснить: скажем, у меня есть протокол с определениями 10 функций, некоторые из них используются для передачи данных между контроллерами представления (делегатом). ).

Теперь, когда я настраиваю контроллер представления в соответствии с этим протоколом, мне нужно определить все эти функции, ведь мой контроллер представления загружается кодом. Что мне было интересно, так это то, что если возможно создать отдельный класс, например, Service, а затем сделать этот класс соответствующим этому протоколу, и в моем контроллере представления я бы просто вызвал Service.nameOfFunction ().

Я не знаю, как это будет работать с делегатом, например, если есть функция, которая использует MapView, мне нужно будет указать ее в качестве параметра, но в другом viewcontroller у меня нет MapView, так что я введу параметры при вызове функции?

Я знаю, что это немного сбивает с толку, но я надеюсь, что вы понимаете.

Ответы [ 3 ]

0 голосов
/ 08 мая 2018

Вы будете выполнять дополнительные функции в быстром протоколе, например `

@objc protocol MyProtocol {

    @objc optional func doSomething()

}

class MyClass: MyProtocol {

    // no error

}` 

Нет необходимости подтверждать дополнительные методы.

0 голосов
/ 08 мая 2018
protocol SomeProtocol { 
  func someProtocolMethod()
}

extension SomeProtocol {
  func someProtocolMethod() {
    // Default impl here (also can leave empty) (*)
  }
}

class SomeClass: SomeProtocol {
  // Currently have default implementation of someProtocolMethod -> (*)
}
0 голосов
/ 08 мая 2018

Просто установите значение по умолчанию для параметра в объявлении метода.При вызове функции вы можете либо передать значение, либо пропустить его.Если передано значение, оно будет переопределено внутри метода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...