VTMagic框架数据重复问题

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

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

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

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

缓存核心代码:

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

  • (void)viewDidDisappear:(BOOL)animated {

[super viewDidDisappear:animated];

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

//[self cancelNetworkRequest];

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

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

}

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

  • (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;

}

}

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

你可能感兴趣的:(VTMagic框架数据重复问题)