• 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];

        

    }

  • 相关阅读:
    021.NET5_Autofac多种注入方式
    020.NET5_Autofac初识
    018-019 NET5_内置容器支持依赖注入+IServiceCollection的生命周期
    017.NET5_内置容器基本使用
    设计库和表从哪些方面考虑(MYSQL)
    MD5的如何加密空字符串的(PHP)
    Think php 5登陆注册session储存
    think php 5(命令行)创建控制器、model
    PHP面试题(个人总结)————(暂不更新)
    PHP中的curl库使用
  • 原文地址:https://www.cnblogs.com/wohaoxue/p/4958868.html
Copyright © 2020-2023  润新知