美文网首页
VTMagic框架数据重复问题

VTMagic框架数据重复问题

作者: Frankkkkk | 来源:发表于2017-04-26 17:48 被阅读292次

    Git地址: https://github.com/tianzhuo112/VTMagic

    Git上有VTMagic的介绍及使用,这里不多说了,直接上问题

    问题:项目中引进了VTMagic,实现左右滑动切换视图的功能,所有的子控制器都是相同的类。当滑动到某一个页面时,出现了数据重复的问题。

    原因:没做每个页面的数据缓存。当切换页面时,要取出对应的缓存数据传给控制器,刷新界面。

    缓存核心代码:

    在子控制器类的viewDidDisappear中保存数据

    <pre>

    • (void)viewDidDisappear:(BOOL)animated {

    [super viewDidDisappear:animated];

    //由于页面可能会被重用,需要取消不必要的网络请求

    //[self cancelNetworkRequest];

    //缓存页面数据,将数组存到内存字典中

    [[NewsCacheManager sharedInstance] saveNewsInfo:newsArr channelIDKey:self.channelId];

    }

    </pre>

    在控制器中重写setMenuInfo方法,加载对应的缓存数据,刷新界面

    <pre>

    • (void)setMenuInfo:(ChannelEntity*)menuInfo

    {

    _menuInfo= menuInfo;

    self.channelId = menuInfo.channelID;

    [self loadLocalData];

    }

    • (void)loadLocalData

    {

    //加载本地缓存数据

    newsArr= [NSMutableArrayarrayWithArray:[[NewsCacheManagersharedInstance]fetchNewsInfo:self.channelId]];

    if(newsArr.count>0) {

    [self reloadTblData];

    return;

    }

    }

    </pre>

    另外分享个找Bug的心得:当你花了1个小时关注细节而没找出原因时,不妨把查找范围扩大一些。可以查看当前类中所有的代码,可能就是其他位置的代码处理了这部分逻辑。

    相关文章

      网友评论

          本文标题:VTMagic框架数据重复问题

          本文链接:https://www.haomeiwen.com/subject/olhwzttx.html