zoukankan      html  css  js  c++  java
  • iOS中三种数据存储(本地持久化),cell是手写创建和stroyboard或者xib创建的初始化的方法

    三数据存储:

    1.plist 属性列表

    1>适用对象:仅仅是Foundation 框架中的自带的一些类,比如NSString NSArray NSDIcionaryNSSetNSNumberNSData

    2.适用对象WriteToFile...方法写入文件

    3>调用对象...WithContentsOfFile方法就可以从文件中读取对象内容

    2.偏好设置

    1>本质还是plist属性列表的方式进行存储

    2>存取非常简单

    *不需要关心文件名

    3>只能存储到一个文件中(不能存放大批量数据)

    3.NSCoding

    1.能将任何遵守NSCoding协议的对象塞进文件中

    2.- (void)encodeCoder:(NSCoder *)encoder

    *将对象规档的时候调用(将对象写入文件之前会调用)

    /在这个方法说清楚:

    1.哪些属性需要存储

    2.怎样存储这些属性

    3.- (id)initWIthCoder:(NSCoder *)decoder

    *当从文件中解析对象时调用

    //在这个方法中说清楚:

    //1.哪些属性需要解析(读取)

    //2.怎样解析(读取)这个属性

    4.如果父类中也有属性需要归档或者读档,必须董昂用super的encodeCoder和initWithCoder方法

    //- (IBAction)xieru:(id)sender {

    //    //1.获取沙盒根路径

    //    NSString *home = NSHomeDirectory();

    //    //2.document路径

    //    NSString *docPath = [home stringByAppendingPathComponent:@"Documents"];

    //    //3.新建数据

    //    NSArray *data = @[@"jack",@"10",@"ffdsf"];

    //    NSString *filepath = [docPath stringByAppendingPathComponent:@"data.plist"];

    //    [data writeToFile:filepath atomically:YES];

    //    

    //}

    //- (IBAction)duchu:(id)sender {

    //    //1.获取沙盒根路径

    //    NSString *home = NSHomeDirectory();

    //    //2.document路径

    //    NSString *docPath = [home stringByAppendingPathComponent:@"Documents"];

    //    //3.文件路径

    //    NSString *filepath = [docPath stringByAppendingPathComponent:@"data.plist"];

    //    //4.读取数据

    //    NSArray *data = [NSArray arrayWithContentsOfFile:filepath];

    //    NSLog(@"%@",data);

    //    

    //    

    //}

    //

    - (void)save{

        //1.利用NSUserdefaults ,就能直接访问软件的偏好设置

        //不关心文件夹和文件名

        NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];

        [defaults setObject:@"mj" forKey:@"accout"];

        [defaults setObject:@"123" forKey:@"pwd"];

        [defaults setInteger:10 forKey:@"age"];

        

        [defaults setBool:YES forKey:@"auto_login"];

        

        //立即同步

        [defaults synchronize];

    }

    - (void)read{

        NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];

        NSString *accout = [defaults objectForKey:@"pwd"];

        

    }

    #import "Person.h"

    @implementation Person

    //对象归档的时候回调用(将对象写入文件之前会调用)

    //在这个方法说清楚:

    //1.哪些属性需要存储

    //2.怎样存储这些属性

    - (void)encodeWithCoder:(NSCoder *)encoder{

        //将_name 属性值进行编码 (会将_name的值存入文件)

        [encoder encodeObject:_namge forKey:@"name"];

        [encoder encodeInt32:_age forKey:@"age"];

    }

    //解码

    - (id)initWithCoder:(NSCoder *)decoder{

        if (self = [super init]) {

            _namge = [decoder decodeObjectForKey:@"name"];

            _age = [decoder decodeInt32ForKey:@"age"];

        }

        return self;

    }

    @end

    - (IBAction)dianji:(id)sender {

        Person *p = [[Person alloc] init];

        p.namge = @"chihaitao";

        p.age = 12;

        p.gender = YES;

        NSString *path = @"/User/apple/Desktop/person.data";

        //1.编码encodeWithCoder2.归档

       [NSKeyedArchiver archiveRootObject:p

                                   toFile:path];

    }

    - (IBAction)duchulai:(id)sender {

        

         NSString *path = @"/User/apple/Desktop/person.data";

        //1.initWithCoder解码 2.反归档

        Person *p = [NSKeyedUnarchiver unarchiveObjectWithFile:path];

        

    }

  • 相关阅读:
    Pig与Hive的区别
    Hadoop MapReduceV2(Yarn) 框架简介
    Spark技术内幕:Client,Master和Worker 通信源码解析
    Spark技术内幕:Stage划分及提交源码分析
    无责任比较thrift vs protocol buffers
    理解hadoop的Map-Reduce数据流(data flow)
    hadoop-2.5安装与配置
    linux下查看本地程序占用的端口
    MFC安装与部署(程序打包)
    关系数据库设计中数据字典设计例子
  • 原文地址:https://www.cnblogs.com/wohaoxue/p/4958868.html
Copyright © 2011-2022 走看看