iOS 數(shù)據(jù)庫定時(shí)清理

當(dāng)應(yīng)用本地?cái)?shù)據(jù)庫不斷存入數(shù)據(jù),數(shù)據(jù)庫體積不斷增大,這種情況下,我們一般需要清除舊數(shù)據(jù).可以手動(dòng)清除,也可以自動(dòng)清除。更多的時(shí)候我們會(huì)選擇自動(dòng)清除,不為別的,就為了裝下B。
這里列出一些常用的定時(shí)清除數(shù)據(jù)的做法:

方法一:在應(yīng)用啟動(dòng)的時(shí)候- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(nullable NSDictionary *)launchOptions;查看當(dāng)前是否存在上次清除數(shù)據(jù)的時(shí)間點(diǎn),如果不存在的話,表明以前沒有清除過數(shù)據(jù),這時(shí)候就把當(dāng)前時(shí)間點(diǎn)作為value保存起來,如果是存在上次清除的時(shí)間點(diǎn)的話,則判斷現(xiàn)在的時(shí)間點(diǎn)與上次清除的時(shí)間點(diǎn)之間的間隔是否大于自己設(shè)定的清除時(shí)間間隔。若大于,則執(zhí)行數(shù)據(jù)庫刪除操作,并把當(dāng)前時(shí)間代替上次的清除時(shí)間點(diǎn)。
demo代碼
-(void)checkDBSituation{
NSUserDefaults userDefault = [NSUserDefaults standardUserDefaults];
NSDate
time = [userDefault objectForKey:DBClearTime];
if (!time) {
[userDefault setObject:[NSDate date] forKey:DBClearTime];
[userDefault synchronize];
}
if ([[NSDate date] timeIntervalSinceDate:time] > DBClearDelta ) {
[kMgr deletePartOfDBData];
[userDefault setObject:[NSDate date] forKey:DBClearTime];
[userDefault synchronize];
}
}

待續(xù)...

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容