YTKBaseRequest: 封装所有的关于当前网络请求所需要的数据,如: 请求Path、请求方法、请求参数、是否加密、是否签名、请求回调Block ...
YTKRequest: 封装所有关于缓存请求response data的代码
//YTKRequest缓存请求对象的 start方法
<p class="p1"><span class="s1">- (</span><span class="s2">void</span><span class="s1">)start {</span></p><p class="p1"> </p><p class="p1"><span style="white-space:pre"> </span>//1. 如果当前request对象,【设置了忽略缓存数据】,直接调用YTKBaseRequest的start方法,发起网络请求<span style="white-space:pre"> </span></p><p class="p2"><span class="s2"><span style="white-space:pre"> </span>if</span><span class="s3"> (</span><span class="s2">self</span><span class="s3">.</span><span class="s1">ignoreCache</span><span class="s3">) {</span></p><p class="p1"><span class="s1"><span style="white-space:pre"> </span> <span style="white-space:pre"> </span>[</span><span class="s2">super</span><span class="s1"> </span><span class="s4">start</span><span class="s1">];</span></p><p class="p1"><span class="s1"><span style="white-space:pre"> </span> <span style="white-space:pre"> </span></span><span class="s2">return</span><span class="s1">;</span></p><p class="p1"><span class="s1"><span style="white-space:pre"> </span>}</span></p><p class="p3"><span class="s1"></span>
</p><p class="p4"><span class="s1"><span style="white-space:pre"> </span>//2. 如果当前request对象,【没有设置缓存超时时间】,<span style="font-family: monospace; white-space: pre; background-color: rgb(240, 240, 240);">直接调用YTKBaseRequest的start方法,发起网络请求</span><span style="font-family: monospace; white-space: pre; background-color: rgb(240, 240, 240);"> </span></span></p><p class="p2"><span class="s2"><span style="white-space:pre"> </span>if</span><span class="s3"> ([</span><span class="s2">self</span><span class="s3"> </span><span class="s1">cacheTimeInSeconds</span><span class="s3">] < </span><span class="s5">0</span><span class="s3">) {</span></p><p class="p1"><span class="s1"><span style="white-space:pre"> </span>[</span><span class="s2">super</span><span class="s1"> </span><span class="s4">start</span><span class="s1">];</span></p><p class="p1"><span class="s1"> <span style="white-space:pre"> </span></span><span class="s2">return</span><span class="s1">;</span></p><p class="p1"><span class="s1"><span style="white-space:pre"> </span>}</span></p><p class="p3"><span class="s1"></span>
</p><p class="p4"><span class="s3"> <span style="white-space:pre"> </span></span><span class="s1">//3. 查看磁盘文件中保存的【当前请求response data数据文件】的 【缓存版本号】</span></p><p class="p1"><span class="s1"> <span style="white-space:pre"> </span></span><span class="s2">long</span><span class="s1"> </span><span class="s2">long</span><span class="s1"> cacheVersionFileContent = [</span><span class="s2">self</span><span class="s1"> </span><span class="s4">cacheVersionFileContent</span><span class="s1">];</span></p><p class="p1"><span style="white-space:pre"> </span>//注意:【缓存数据的版本号管理】:如果【磁盘文件保存的版本号】 与 【当前request对象指定的版本号】不一致,则执行网络请求获取新的response数据</p><p class="p1"><span class="s2"><span style="white-space:pre"> </span>if</span><span class="s1"> (cacheVersionFileContent != [</span><span class="s2">self</span><span class="s1"> </span><span class="s4">cacheVersion</span><spa