美文网首页算法或者代码tableview和cell相关复制粘贴
最省心的数组存储(存取各一行代码即可)

最省心的数组存储(存取各一行代码即可)

作者: wg689 | 来源:发表于2016-06-26 10:44 被阅读620次

背景(需求)

需要将用户点击的新闻的标题存储到本地便于做一个选中的状态,其中用到数组的归档,考虑到为以后用起来方便,我决定对它进行封装,力求以后使用最省心,存一行搞定,取一行搞定.一行哦!!!
core data,realm,sqlite 都可以存储哦,小功能就不用搞得那么复杂,就直接存储为文件吧!

一)上一下效果图,就是将选中灰色的标题保存到数组中

456.gif

二)看看我是怎么使用的

  • 存的时候直接将字符串存到一个@"state"标示的数组中


    存的截图.png
  • 取的时候直接使用@"state"的标示获取到一个数组


    取的截图.png

是不是没骗你,存取一行代码搞定!而且是类方法哦,调用很方便的

类似的思想封装成模型,或者存储到字典都是一行代码,后期有时间再慢慢完善.**

三)最后上代码,里面有详细过程

NSArray+Extensions.h

//
//  NSArray+Extensions.h
//  Vote
//
//  将数组或字典存到本地,以data的形式,这个可以解决出现null无法保存的情况

#import <Foundation/Foundation.h>

@interface NSArray(NSArray_Extensions)
//将 targetStr存储到path下面(路径的一个唯一标示即可,可以1,2,3,...)底层会将path 拼接为真正的沙盒路径
+ (BOOL)writetargetStr:(NSString*)targetStr ToFilePath:(NSString *)path ;
//读取到path下面(路径的一个唯一标示即可,可以1,2,3,...)的一个数组,底层会将path 拼接为真正的沙盒路径
+(NSArray*)readFile:(NSString*)path;
@end

NSArray+Extensions.m

+ (BOOL)writetargetStr:(NSString*)targetStr ToFilePath:(NSString *)path{
    //1.写入之前先读取已经存在过的数组
    NSArray *Arr =  [NSArray readFile:path];
    NSMutableArray *mutArr = [NSMutableArray arrayWithArray:Arr];
//不加判断存进去空会崩溃
    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];
}

相关文章

  • 最省心的数组存储(存取各一行代码即可)

    背景(需求) 需要将用户点击的新闻的标题存储到本地便于做一个选中的状态,其中用到数组的归档,考虑到为以后用起来方便...

  • 数据结构

    数据存储有几种 线性连续存储 【数组】优点:存取速度很快。缺点:事先需要知道数组的长度。插入删除元素的效率极低。空...

  • 高性能Java script (数据存储)

    二、数据存储与查询的性能优化 字面量 : 存取速度最快 本地产量:使用关键字声明 数组元素:JS 的数组是类数组对...

  • Java基础系列11-数组简介

    一.数组概述 数组是存储同一种数据类型,多个元素的容器。数组即可存储基本数据类型,也可以存储引用数据类型。 数组的...

  • 存储器的存储方式

    存储器中数据常用的存取方式有顺序存取、直接存取、随机存取和相联存取等四种。(1)顺序存取:存储器的数据以记录的形式...

  • 【数据结构】Java数组

    首先,数组是一种用来储存相同数据类型的集合,数组存储的元素可以通过数组索引来进行存取,索引通常是数字,用来计算偏移...

  • 隐藏UITableView多余的分割线

    添加下面一行代码即可

  • 编译器笔记59-代码生成-指令选择

    运算语句的目标代码 数组寻址语句的目标代码 指针存取语句的目标代码 条件跳转语句的目标代码 过程调用和返回的目标代码

  • java集合笔记

    集合和数组的区别 区别1:数组即可以存储基本数据类型,又可以存储引用数据类型,基本数据类型存储的是值,引用数据存储...

  • js多个数组(3个以上)合并成json形式

    动态传入数组,动态计算 key,即可,代码如下:

网友评论

    本文标题:最省心的数组存储(存取各一行代码即可)

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