Как сделать класс совместимым с делегатом в swift?

17

Мне нужно, чтобы класс соответствовал делегату в Swift. Как мне это сделать?

    
задан Phillip 03.06.2014 в 22:35
источник

2 ответа

38
class YourClass: SuperClassIfAny, FirstProtocol, SecondProtocol {
}

Обратите внимание, что для некоторых протоколов требуется реализовать методы делегирования. Например, UITableViewDataSource требует для реализации

func tableView(tableView: UITableView!, numberOfRowsInSection section: Int) -> Int

и

func tableView(tableView: UITableView!, cellForRowAtIndexPath indexPath: NSIndexPath!) -> UITableViewCell!

Если они не реализованы классом, соответствующим протоколу, Xcode даст вам ошибку компиляции (всегда проверяйте объявление протокола, Cmd + Click покажет вам, какие методы вы должны ).     

ответ дан Oscar Swanros 03.06.2014 в 22:40
источник
3
___ answer25644504 ​​___

Xcode 6 beta 7 слегка изменил протокол для UITableViewDataSource, чтобы он соответствовал следующему синтаксису для двух требуемых реализаций:

6b7: UITableViewDataSource

func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int 

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell!

по сравнению с 6b6

func tableView(tableView: UITableView!, numberOfRowsInSection section: Int) -> Int

func tableView(tableView: UITableView!, cellForRowAtIndexPath indexPath: NSIndexPath!) -> UITableViewCell

Ключевым отличием является то, что UITableView, NSIndexPath и UITableViewCell больше не « Неявно отключенные опции

    
___ qstntxt ___

Мне нужно, чтобы класс соответствовал делегату в Swift. Как мне это сделать?

    
___ tagios ___ iOS - это мобильная операционная система, работающая на Apple iPhone, iPod touch и iPad. Используйте этот тег [ios] для вопросов, связанных с программированием на платформе iOS. Используйте связанные теги [object-c] и [swift] для вопросов, специфичных для этих языков программирования. ___ qstnhdr ___ Как сделать класс совместимым с делегатом в swift? ___ tagswift ___ Swift - это общий язык программирования с открытым исходным кодом, разработанный Apple Inc. для своих платформ и Linux. Используйте тег только для вопросов о языковых функциях или требуя кода в Swift. Используйте теги [ios], [osx], [watch-os], [tvos], [cocoa-touch] и [какао] для (языковых агностик) вопросов о платформах или фреймворках. ___ answer24024534 ___
%pre%

Обратите внимание, что для некоторых протоколов требуется реализовать методы делегирования. Например, %code% требует для реализации

%pre%

и

%pre%

Если они не реализованы классом, соответствующим протоколу, Xcode даст вам ошибку компиляции (всегда проверяйте объявление протокола, Cmd + Click покажет вам, какие методы вы должны ).     

___
ответ дан Tarei SuperChur King 03.09.2014 в 14:35
источник