1.  NSKeyedArchiver(加密形式)
  2.  plist
  3.  NSUserDefaults
  4.  writeToFile 
  5.  SQLite3
==== NSKeyedArchiver ========================================
-------CKPerson.h 代码
@interface CKPerson : NSObject
@property (nonatomic, copy) NSString *name;
@property (nonatomic, assign) int age;
- (void)encodeWithCoder:(NSCoder *)aCoder;
- (id)initWithCoder:(NSCoder *)aDecoder;
@end
------- CKPerson.m 代码
- (void)encodeWithCoder:(NSCoder *)aCoder
{
    [aCoder encodeObject:self.name forKey:@"name"];
    [aCoder encodeInteger:self.age forKey:@"age"];
}
- (id)initWithCoder:(NSCoder *)aDecoder
{
    if(self = [super init])
    {
        self.name = [aDecoder decodeObjectForKey:@"name"];
        self.age = [aDecoder decodeIntegerForKey:@"age"];
    }
    return self;
}
---------- CKViewController.m
- (IBAction)OnSaveDataClick:(UIButton *)sender {
    CKPerson *p = [[CKPerson alloc] init];
    p.name = @"GoldenKey";
    p.age = 21;
    
    NSString *docPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
    NSString *fileName = filePath = [docPath stringByAppendingPathComponent:@"student.hehe"];
    [NSKeyedArchiver archiveRootObject:p toFile:filePath]; //保存数据
}
- (IBAction)OnGetDataClick:(UIButton *)sender {
     CKPerson *p = [NSKeyedUnarchiver unarchiveObjectWithFile:filePath]; //获取数据
}
==== plist存取 array、dictionary ===================================
- (IBAction)OnArraySaveClick:(UIButton *)sender {
    NSArray *testArray = @[@"111",@"121",@"131",@"141",@"151"];
    [testArray writeToFile:self.path4Array atomically:YES];
}
- (IBAction)OnArrayGetClick:(UIButton *)sender {
    NSArray *testArray = [NSArray arrayWithContentsOfFile:self.path4Array];
    NSLog(@"数组长度为%d",[testArray count]);
}
- (IBAction)OnDictionarySaveClick:(UIButton *)sender {
    NSDictionary *dict = @{@"name":@"key",@"age":@12};
    [dict writeToFile:self.path4Dict atomically:YES];
}
- (IBAction)OnDictionaryGetClick:(UIButton *)sender {
    NSDictionary *dict = [NSDictionary dictionaryWithContentsOfFile:self.path4Dict];
    NSLog(@"name:%@",dict[@"name"]);
    NSLog(@"age:%@",dict[@"age"]);
}
==== NSUserDefaults 程序票号设置 =================================
    NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
    
    [userDefaults setInteger:1 forKey:@"testInt"];
    [userDefaults synchronize];
    
    int i = [userDefaults integerForKey:@"testInt"];
    NSLog(@"i=%d",i);
    //-----------
    
    NSString *name = @"GoldenKey";
    [userDefaults setObject:name forKey:@"name"];
    [userDefaults synchronize];
    
    NSString *nameResult = [userDefaults objectForKey:@"name"];
    NSLog(@"%@",nameResult);
==== writeToFile ============================================
    --读取string----------------------------------------------------
    NSArray *documentPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,  NSUserDomainMask,YES);
    NSString *ourDocumentPath =[documentPaths objectAtIndex:0];
    
    //第二步:生成在该路径下的文件:
    NSString *FileName=[ourDocumentPath stringByAppendingPathComponent:@"test.hehe"];
    NSString *texts = @"test string";
    NSData *data = [texts dataUsingEncoding:NSUTF8StringEncoding];
    [data writeToFile:FileName atomically:YES];//将NSData类型对象data写入文件,文件名为FileName
    
    
    //读取方式1
    //NSData *dataResult=[NSData dataWithContentsOfFile:FileName options:0 error:NULL];//从FileName中读取出数据
    //NSString *strResult = [[NSString alloc] initWithData:dataResult encoding:NSUTF8StringEncoding];
    
    //读取方式2
    NSString *strResult = [NSString stringWithContentsOfFile:FileName encoding:NSUTF8StringEncoding error:nil];
    NSLog(@"%@",strResult);
    
    //--存取dictionary-------------------------------------------
    
    NSString *dictFileName = [ourDocumentPath stringByAppendingPathComponent:@"dict.hehe"];
    NSDictionary *dictTest = @{@"name":@"GoldenKey",@"age":@24};
    NSData *dictData = [NSJSONSerialization dataWithJSONObject:dictTest options:NSJSONWritingPrettyPrinted error:nil];
    [dictData writeToFile:dictFileName atomically:YES];
    
    NSData *dataResult = [NSData dataWithContentsOfFile:dictFileName];
    NSDictionary *dictResult = [NSJSONSerialization JSONObjectWithData:dataResult options:NSJSONReadingMutableContainers error:nil];
    NSLog(@"name = %@",dictResult[@"name"]);
==== sqlite3 ========================================================

IOS中的数据存储 简单总结的更多相关文章

  1. iOS中的数据存储

    SQLite3 SQLite3是一款开源的嵌入式关系型数据库,可移植性好,易使用,内存开销小. SQLite3是无类型的,意味着你可以保存任何类型的数据到任意表的任意字段中. SQLite3常用的4种 ...

  2. ios中常见数据存储方式以及SQLite常用的语句

    在iOS中,根据不同的需求对应的有多种数据存储方式: 1.NSUserdefaults  将数据存储到沙盒中(library),方便易用,但是只能存储系统提供的数据类型(plist),不能存储自定义的 ...

  3. iOS中的数据存储方式_SQLite3

    优点: 1) SQLite是一款轻型的嵌入式数据库; 2) 它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了 3) 它的处理速度比Mysql.PostgreSQL这两款著名的数据库都还 ...

  4. IOS中的数据存储方式,特点,使用情况

    数据存储的核心都是写文件,主要有四种持久化方式:属性列表(Plist),对象序列化,SQLite数据库,CoreData. 存储Plist: 键值进行存储,不能存储对象.对象需要序列化编码才能写入文件 ...

  5. iOS中的数据存储方式_Preference(NSUserDefaults)

    NSUserDefaults适合存储轻量级的本地数据,项目中,我会把一些简单的数据密码.网址.登陆状态BOOL.整型/浮点型数据等和用户有关的数据用它存储.但是它不能存储自定义的对象! 实例化一个 N ...

  6. iOS中的数据存储方式_Plist

    plist文件只能存储OC常用数据类型(NSString.NSDictionary.NSArray.NSData.NSNumber等类型)而不能直接存储自定义模型对象; 我们拿NSData举例: /* ...

  7. iOS中的数据持久化方式

    iOS中的数据持久化方式,基本上有以下四种:属性列表.对象归档.SQLite3和Core Data. 1.属性列表 涉及到的主要类:NSUserDefaults,一般 [NSUserDefaults ...

  8. 67.Android中的数据存储总结

    转载:http://mp.weixin.qq.com/s?__biz=MzIzMjE1Njg4Mw==&mid=2650117688&idx=1&sn=d6c73f9f04d0 ...

  9. IOS学习:ios中的数据持久化初级(文件、xml、json、sqlite、CoreData)

    IOS学习:ios中的数据持久化初级(文件.xml.json.sqlite.CoreData) 分类: ios开发学习2013-05-30 10:03 2316人阅读 评论(2) 收藏 举报 iOSX ...

随机推荐

  1. Flex TextInput的restrict属性应用

    1,<mx:TextInput id="test_ti" width="160" maxChars="20" restrict=&qu ...

  2. Thrift对多接口服务的支持

    Thrift对多接口服务的支持 Thrift在0.9.1版本之前,一直只提交了对单一接口服务的支持,即一个RPC服务器(对应一个端口)支持一个服务接口的实现. 但是很多时候,我们的服务不能实现在一个接 ...

  3. Java程序猿JavaScript学习笔记(2——复制和继承财产)

    计划和完成在这个例子中,音符的以下序列: Java程序猿的JavaScript学习笔记(1--理念) Java程序猿的JavaScript学习笔记(2--属性复制和继承) Java程序猿的JavaSc ...

  4. OutLook 2010 收件箱子文件夹收到新邮件时没有桌面通知

    开始---规则----管理规则和通知 规则和通知---电子邮件规则---批量选择账号---更改规则---在新邮件通知和窗口显示(选中)---确定 录入通知邮件消息---确定 效果如下:

  5. iOS开发常识

    一.NSString 创建字符串.  NSString *astring = @"This is a String!"; 创建空字符串,给予赋值.  NSString *astri ...

  6. 学习MVC遇到的问题

    修改电脑上的DNS配置: Opendns 首选DNS服务器和备用DNS服务器分别设置为208.67.222.222和208.67.220.220 google的8.8.8.8 首选DNS服务器和备用D ...

  7. Canvas使用渐变之-线性渐变详解

    在canvas里面,除了使用纯色,我们还能把填充和笔触样式设置为渐变色:线性渐变和径向渐变. 线性渐变 createLinearGradient(x0,y0,x1,y1)  返回 CanvasGrad ...

  8. JavaSE学习总结第06天_Java语言基础2 & 面向对象1

      06.01 二维数组概述和格式1的讲解 二维数组概述:二维数组其实就是一个元素为一维数组的数组 格式1:数据类型[][] 变量名 = new 数据类型[m][n]; m表示这个二维数组有多少个一维 ...

  9. BZOJ 1230: [Usaco2008 Nov]lites 开关灯( 线段树 )

    线段树.. --------------------------------------------------------------------------------- #include< ...

  10. Joel在耶鲁大学的演讲

    Joel Spolsky是一个美国的软件工程师,他的网络日志"Joel谈软件"(Joel on Software)非常有名,读者人数可以排进全世界前100名. 上个月28号,他回到 ...