问题描述
我有一种情况,我不想再次调用相同的API。为此,我将回调保存在字典中,并使用URL(URL作为键,回调为值)检查事件时间。
当我尝试在dict中使用泛型回调时,它不接受out类型。任何人都可以让我知道如何保存它。如果不指定类型,我将无法使用它。
例如: 这里的“ T”就像我的学生模型。 在ClassA和ClassB中,我要求同时/一对一地列出学生名单。现在,我将在两个类中得到相同的响应。我正在使用一种方法(即“ request()”)从apimanager类为所有API调用调用Alamofire。如果我没有在requesr()方法中保存回调,该如何通过解码将学生数据发送回classA和ClassB。
在将数据发送回类之后,我将删除保存的回调。
typealias requestCallback<T : Decodable> = (T?) -> Void
class apimanager {
var totalRequest : [String : [requestCallback]] = [:] as! [String : [requestCallback]]
}
解决方法
签出NSURLCache
:https://nshipster.com/nsurlcache/
数量众多的开发人员已经为网络缓存功能破解了一个笨拙,脆弱的系统,所有这些都是因为他们不知道NSURLCache可以分两行进行设置,并且可以做得更好100倍。甚至更多的开发人员从未知道网络缓存的好处,也从未尝试过解决方案,从而导致他们的应用向服务器发出无数的不必要请求。