今天再寫斷網(wǎng)頁面的時(shí)候發(fā)現(xiàn)了一個(gè)bug, 有網(wǎng)的時(shí)候和沒網(wǎng)的時(shí)候刷新數(shù)據(jù)都沒有問題. 只有再先有網(wǎng)絡(luò)加載了數(shù)據(jù), 然后再斷網(wǎng)刷新數(shù)據(jù)就出現(xiàn)崩潰的情況.
經(jīng)分析, 是因?yàn)槲以谒⑿碌臅r(shí)候先將數(shù)組清空, 然后再請(qǐng)求數(shù)據(jù).
這樣導(dǎo)致刷新時(shí)最后一個(gè)cell消失, 彈回來時(shí),數(shù)據(jù)已經(jīng)被清空, 如此導(dǎo)致崩潰.
解決方案:
添加一個(gè)屬性判斷是否是下拉刷新
/**
- 是否是下拉
*/
@property (nonatomic, assign)BOOL isDrawDown;
在下拉刷新調(diào)用的方法中將這個(gè)屬性設(shè)為yes,
self.isDrawDown = YES;
然后在請(qǐng)求數(shù)據(jù)成功的回調(diào)方法中判斷是否是下拉刷新, 若是, 則清空.若數(shù)據(jù)請(qǐng)求失敗, 則不清空數(shù)據(jù). 這樣就不會(huì)崩潰.
if (self.isDrawDown) {
[self.hotLiveArray removeAllObjects];
self.isDrawDown = NO;
}