ios - 这里需要代表吗?

标签 ios swift design-patterns

这可能是非常基础的。但是,我不太确定在以下情况下是否需要代表? 委托(delegate)是否以同步方式使用?如果是,在作为委托(delegate)的调用者调用的函数中调用委托(delegate)方法是否合适[如下例]?

class FooViewController: UIViewController {

    func login() {
       let loginHelper = LoginHelper()
       loginHelper.fooDelegate = self
       loginHelper.shouldEnableLogin()
    }

    func enableLogin() {
       // Do some UI updates
    }

    func reset() {
       // Clear some values in the views
    }
}

class LoginHelper {
    weak var delegate: fooDelegate?

    func shouldEnableLogin() {
       //clear some text views
        delegate.reset()
        //do some validation, synchronous
        delegate.enableLogin()
    }
}

最佳答案

委托(delegate)是一种设计模式,允许一个对象在特定事件发生时向另一个对象发送消息。想象一个对象 A 调用一个对象 B 来执行一个 Action 。一旦 Action 完成,对象 A 应该知道 B 已经完成任务并采取必要的 Action ,这可以在委托(delegate)的帮助下实现!

关于ios - 这里需要代表吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49442731/

相关文章:

ios - WKWebView加载后6秒显示警报

ios - UIImageView 在表格 View 中的图像左侧有奇怪的空间

ios - 将枚举数组从 Swift 桥接到 Objective-C

c++ - 未能看到复合/迭代器设计模式的真正值(value)

java - 如何组织游戏代码以适应 MVC 模式?

ios - 使用 "Allow Arbitrary Loads = YES"阻止应用程序传输安全

ios - iOS多人游戏-Game Center和Facebook Connect

ios - 使用 CAShapeLayer 对蒙版部分的透明度进行动画处理

swift - 如何在 swift 中从 sqlite 检索图像的 id(保存在 BLOB 中)

java - 返回列表的工厂模式