我有这个用例,其中模型对象(例如类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的新手,并且想知道我是否正走在正确的道路上。有没有其他明显的方法来实现这个相当常见的问题。
答案 0 :(得分:0)
在我的应用中,使用Url whiteList来解决此问题, 例如,用户身份验证界面中的Url包含“/ users /”此字符串(或其他字符串),当用户未登录并使用此类Url的请求发送通知时,由统一类接收此通知,然后弹出登录框
答案 1 :(得分:0)
我是Swift的新手,想知道我是否走在正确的道路上。有没有其他明显的方法来实现这个相当常见的问题。
是的,有几种方法可以选择解决这个问题。 e
在委托协议上定义getter方法,如果它不是您自己的委托协议,则可以使用extension扩展其功能。
创建一个Enumeration作为实例变量,这样您就可以在登录方法中设置一个枚举值,其他方法可以在登录方法完成后访问。
更改登录方法以接受更多参数并返回值\ object。
例如:
login(delegate: LoginDelegate, dictionaryOfOtherStuff: [String :AnyObject]?) -> (value_1: String, value_2 : [int])
我只能给出一个例子,因为你没有明确说明在调用login方法后需要提供什么。