2014-12-18 4 views
1

Может кто-нибудь объяснит мне только протоколы класса в Swift. Я понимаю, какие протоколы и почему мы их используем. Я также понимаю, что рекомендуется использовать только протоколы класса, когда мы используем в нем объекты ссылочного типа и хотим ограничить конформацию протокола только для классов. Однако я не могу найти хороший ответ для поддержки этой рекомендации. Почему это рекомендуется? Каковы недостатки использования обычных протоколов в этом случае.Зачем использовать только протоколы класса в Swift?

+1

* Используйте протокол только для классов, если предполагается, что поведение, определенное требованиями этого протокола, требует, чтобы соответствующий тип имел ссылочную семантику, а не семантику значений. * Https://developer.apple.com/library/ios/ документация/Swift/Концептуальное/Swift_Programming_Language/Protocols.html # // apple_ref/DOC/UID/TP40014097-CH25-XID_422 –

ответ

7

Один случай использования:

  • У вас есть протокол «делегат» и кто-то хочет иметь weak свойство этого типа протокола. weak может использоваться только для ссылочных типов; поэтому протокол должен быть только классом.
Смежные вопросы