Swift class 带有协议的扩展与符合协议的扩展

Swift class extension with protocol vs conforming to protocol

this教程中,作者使用了extension FlickrPhotosViewController: UITextFieldDelegate,然后实现了协议方法。我已经测试过,作者可以很容易地完成 class FlickrPhotosViewController: UICollectionViewController, UITextFieldDelegate 并实现 class 中的方法。我能看到的唯一区别是它更容易阅读和理解。这是设计风格还是什么?

Is this a design style or something

非常喜欢。将一个 class 分成多个扩展名是正常的风格,每个扩展名表示 class 采用了一个或多个相关协议。但是这种分离没有功能的意义; class 可以 在没有这种分离的情况下表达。

编码更好

您不应在同一个文件中组合文本字段委托和视图控制器。