[英]Passing data to delegate in swift
我有一个模型对象(例如User类)的方法很少的用例。
该类中的某些方法需要身份验证(例如,getProfile,getFriends等)。
class User{
var loginDelegate:LoginDelegate
func getProfile{
HTTPAsync.getProfile(payload){response in
if response.status == 401 {
login(delegate)
}
}
func getFriends{
//similar code as above
login(delegate)
}
用户成功登录后,我要调用相应的函数(getFriends,getProfile,以调用的登录为准)。
我一直在考虑使用委托模式。 但是由于我的类(用户)有多个需要登录的方法,因此我需要将一些数据传递给委托,在用户登录以调用适当的方法后必须读取这些数据。
我是Swift的新手,想知道我是否走对了路。 还有其他明显的方法可以解决这个非常普遍的问题。
在我的应用中,使用Url whiteList解决此问题,例如,当用户未登录并使用请求时,用户身份验证界面中的Url包含“ / users /”此字符串(或其他字符串)。这样的一个Url发出通知,由一个统一的班级接收这个通知,然后弹出登录框
我是Swift的新手,想知道我是否走对了路。 还有其他明显的方法可以解决这个非常普遍的问题。
是的,您可以选择两种方法来解决此问题。 Ë
在委托协议上定义getter方法,如果它不是您自己的委托协议,则可以使用扩展名来扩展其功能。
创建一个Enumeration作为实例变量,以便您可以在login方法中设置一个枚举值,登录方法完成后其他方法可以访问该方法。
更改登录方法以接受更多参数并返回value \\ object。
例如:
login(delegate: LoginDelegate, dictionaryOfOtherStuff: [String :AnyObject]?) -> (value_1: String, value_2 : [int])
我仅举一个例子,因为您没有确切说明调用login方法后需要提供的内容。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.