利用归档保存数组数据

1首先创建一个模型类,一定要遵守NSCoding协意。

@interface Contact : NSObject <NSCoding>

@property (nonatomic, copy) NSString *name;
@property (nonatomic, copy) NSString *phone;

@end

implementation Contact

- (void)encodeWithCoder:(NSCoder *)encoder
{
    [encoder encodeObject:self.name forKey:@"name"];//读取时属性对应的Key
    [encoder encodeObject:self.phone forKey:@"phone"];
}

- (id)initWithCoder:(NSCoder *)decoder
{
    if (self = [super init]) {
        self.name = [decoder decodeObjectForKey:@"name"]; //归档时属性对应的Key
        self.phone = [decoder decodeObjectForKey:@"phone"];
    }
    return self;
}
@end

2测试归档

@interface ContactsTest : UITableViewController

@property (nonatomic, strong) NSMutableArray *array

@end

@implementation MJContactsViewController

-(void)writ{

  //创建归档文件路径。“contacts.data”可以随便写
   NSString *path=[[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject] stringByAppendingPathComponent:@"contacts.data"]

 // 归档数组
  [NSKeyedArchiver archiveRootObject:self. array toFile: path];

}

-(void)read{

     NSString *path=[[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject] stringByAppendingPathComponent:@"contacts.data"]

       self.array = [NSKeyedUnarchiver unarchiveObjectWithFile:path];

}

@end
时间: 2024-11-07 13:46:01

利用归档保存数组数据的相关文章

[JAVA]JAVA章1 数组数据去重

一 利用HashSet进行去重 //定义一个数组:有几个重复项 int[] testarray = {1,2,33,4,2,3,44,5,222,3}; //利用HashSet对数组数据去重 Set<Integer> set = new HashSet(); for(int i=0;i<testarray.length;i++) { set.add(testarray[i]); } //定义新数组 int[] newtestarray = new int[set.size()]; int

安卓实训第十天:利用SharedPreferences来实现数据的保存和读取,以及实现手机电话备份,XMLserializer

一.利用SharedPreferences来实现数据的保存和读取: 1.Mainactivity: package com.example.sharedpreferencesdemo; import com.example.sharedpreferencesdemo.util.SharedPreferencesUtil; import android.app.Activity; import android.app.AlertDialog; import android.content.Cont

利用jquery动态添加和删除表格的一行,并且保存单行数据

开发时遇到一个需求:要求要在页面的表格可以添加和删除一行,并能填写对应的数据后保存这一行数据. HTML代码 界面使用了freemarker框架,teams是后台传过来的list类型数据 <form action="" id="" method="post"> ... <table id="addTable" > <tr class="first_tr"> <th&

利用IOS模拟器将数据存储在本地沙盒中以及从沙盒中读取详细步骤

使用IO模拟器,应用沙盒的根路径为:/Users/apple/Library/Application Support/iPhone Simulator/6.0/Applications(6.0为模拟器的版本) 1.获取应用沙盒目录 <1>利用沙盒根目录拼接"Documents"字符串 NSString * home = NSHomeDirectory(); NSString * documents = [home stringByAppendingPathComponent

螺旋输出一组数组数据的实现

要螺旋输出一组数据,实现的解决方案:采用二维数组的形式来解决 结果如下: 实现如下: 这里我们定义一个类      public class LoopSort{         public static void main(String[] args){                //要螺旋输出的数据的个数             Scanner s=new Scanner(System.in);             System.out.println("请输入螺旋输出的数据的行和列

利用Python进行数据分析——数据规整化:清理、转换、合并、重塑(七)(2)

1.索引上的合并 有时候,DataFrame中的连接键位于其索引中.在这种情况下,你可以传入left_index = True或right_index = True(或两个都传)以说明索引应该被用作连接键: In [8]: left1 = pd.DataFrame({'key': ['a', 'b', 'a', 'a', 'b', 'c'], ...: 'value':range(6)}) In [9]: right1 = pd.DataFrame({'group_val':[3.5, 7]},

ffmpeg最简单的解码保存YUV数据 &lt;转&gt;

video的raw data一般都是YUV420p的格式,简单的记录下这个格式的细节,如有不对希望大家能指出.   YUV图像通常有两种格式,一种是packet 还有一种是planar    从字面上就能理解packet的意思就是所有的yuv数据都是一股脑的放在一起,当然 内部的数据还是按照格式要求的,只是从外部来讲是一整个包包含了所有的yuv数据.最长见的YUV格式就是planar格式了.这个格式是讲yuv三个分量分别放在三个数组里.   如下图是个420p的格式图: YUV420格式是指,每

【android】存储数组数据到SharedPreferences

如果要数组数据(如boolean[] .int[]等)到SharedPreferences时,我们可以先将数组数据组织成json数据存储到SharedPreferences,读取时则对json数据进行解析就ok了. 例如,我要保存boolean[] 数组数据: public static void saveApkEnalbleArray(Context context,boolean[] booleanArray) { SharedPreferences prefs = context.getS

基于ini配置文件实现多维数组数据的按行存储和读取

需求是为一个多维数组对象的数据按行存储到文件,需要键值对区分层级,对每个对象描述清晰.类似的格式如下: 上图中的数据对应的就是如下的数组(php 语言): $arr = array( '10003' => array( 'id' => 10003, 'tokentime' => 400), '10005' => array( 'id' => 10005, <p> 'cookie' => array(</p> 'num' => 20 ), '