想听听您对以下架构的看法:
在我的应用程序中,我有一个处理异步登录的静态类 (LoginManager)。一旦登录阶段完成,应用程序应该响应并转换到另一个状态。
我有2个实现建议
使用委托(delegate):
import Foundation protocol LoginManagerDelegate{ func onLogin(result:AnyObject) } class LoginManager { struct Wrapper { static var delegate:LoginManagerDelegate? } class func userDidLogin(result){ Wrapper.delegate?.onLogin(result) } }
使用通知:
import Foundation class LoginManager { class func userDidLogin(result){ NSNotificationCenter.defaultCenter().postNotificationName("onLogin", object: result) } }
问:最好的方法是什么?
最佳答案
为了
- 委托(delegate)/协议(protocol)
当你想从当前 View Controller 更新或完成你以前的 Controller 中的任何过程时,通常使用它。所以如果你想更新以前的 View Controller 中的值,那么委托(delegate)/协议(protocol)是更可取的。
所以基本上是一对一的关系。
- 通知
当您想从任何其他 View Controller 更新 View Controller 中的值时,通常会使用它。所以它基本上是一对多的关系。
因此请根据您的要求使用此类型。
也许这对你有帮助。
关于IOS - 委托(delegate)与通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27647047/