gpt4 book ai didi

ios - 只有类方法和委托(delegate)的 Swift 类?

转载 作者:搜寻专家 更新时间:2023-10-31 22:07:55 25 4
gpt4 key购买 nike

我想要一个包含所有类方法的类。我想使用委托(delegate),以便我的 View Controller (符合协议(protocol))可以调用 AlertFactory.passwordResetSucess() 并显示警报。

  1. 有没有办法让它工作?一种使用此类委托(delegate)的方法?

  2. 这是不好的做法吗?形式不好?为什么?

  3. 实现这一目标的好方法是什么?在多个 View 中将使用其他类方法。

谢谢!

    protocol AlertFactoryDelegate 
{
func showAlert(alert: UIAlertController)
}

class AlertFactory: NSObject {

let delegate: AlertFactoryDelegate!

class func passwordResetSuccess()
{
var alert = UIAlertController(title: "Success!", message: "Yay", preferredStyle: UIAlertControllerStyle.Alert)
alert.addAction(UIAlertAction(title: "Continue", style: UIAlertActionStyle.Default, handler: nil))
delegate.showAlert(alert)
}
}

最佳答案

您可以将delegate设置为static,并通过AlertFactory.delegate访问它

class AlertFactory: NSObject {
static weak var delegate: AlertFactoryDelegate?

class func passwordResetSuccess() {
...
self.delegate?.showAlert(alert)
}
}

创建委托(delegate):

class SomeClass: AlertFactoryDelegate {
... // Implement everything the protocol requires
}

// Asssing a delegate
AlertFactory.delegate = SomeClass()

关于ios - 只有类方法和委托(delegate)的 Swift 类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31326151/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com