最省心的數(shù)組存儲(存取各一行代碼即可)

背景(需求)

需要將用戶點(diǎn)擊的新聞的標(biāo)題存儲到本地便于做一個選中的狀態(tài),其中用到數(shù)組的歸檔,考慮到為以后用起來方便,我決定對它進(jìn)行封裝,力求以后使用最省心,存一行搞定,取一行搞定.一行哦!!!
core data,realm,sqlite 都可以存儲哦,小功能就不用搞得那么復(fù)雜,就直接存儲為文件吧!

一)上一下效果圖,就是將選中灰色的標(biāo)題保存到數(shù)組中

456.gif

二)看看我是怎么使用的

  • 存的時候直接將字符串存到一個@"state"標(biāo)示的數(shù)組中


    存的截圖.png
  • 取的時候直接使用@"state"的標(biāo)示獲取到一個數(shù)組


    取的截圖.png

是不是沒騙你,存取一行代碼搞定!而且是類方法哦,調(diào)用很方便的

類似的思想封裝成模型,或者存儲到字典都是一行代碼,后期有時間再慢慢完善.**

三)最后上代碼,里面有詳細(xì)過程

NSArray+Extensions.h

//
//  NSArray+Extensions.h
//  Vote
//
//  將數(shù)組或字典存到本地,以data的形式,這個可以解決出現(xiàn)null無法保存的情況

#import <Foundation/Foundation.h>

@interface NSArray(NSArray_Extensions)
//將 targetStr存儲到path下面(路徑的一個唯一標(biāo)示即可,可以1,2,3,...)底層會將path 拼接為真正的沙盒路徑
+ (BOOL)writetargetStr:(NSString*)targetStr ToFilePath:(NSString *)path ;
//讀取到path下面(路徑的一個唯一標(biāo)示即可,可以1,2,3,...)的一個數(shù)組,底層會將path 拼接為真正的沙盒路徑
+(NSArray*)readFile:(NSString*)path;
@end

NSArray+Extensions.m

+ (BOOL)writetargetStr:(NSString*)targetStr ToFilePath:(NSString *)path{
    //1.寫入之前先讀取已經(jīng)存在過的數(shù)組
    NSArray *Arr =  [NSArray readFile:path];
    NSMutableArray *mutArr = [NSMutableArray arrayWithArray:Arr];
//不加判斷存進(jìn)去空會崩潰
    if(!(targetStr.length>0&&targetStr)) 
    return   NO;
    [mutArr addObject:targetStr];
    NSString *path1 = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) firstObject];
    NSString *newPath = [path1 stringByAppendingPathComponent:path];
    NSData * data = [NSKeyedArchiver archivedDataWithRootObject:mutArr];
    return [data writeToFile:newPath
                  atomically:YES];
}

+(NSArray*)readFile:(NSString*)path{
    NSString *path1 = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) firstObject];
    NSString *newPath = [path1 stringByAppendingPathComponent:path];
    NSData * data = [NSData dataWithContentsOfFile:newPath];
    return  [NSKeyedUnarchiver unarchiveObjectWithData:data];
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

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

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