zoukankan      html  css  js  c++  java
  • UI学习笔记---第十四天数据持久化

    一.沙盒机制

    每个应用程序位于文件系统的严格限制部分

    每个应用程序只能在为该程序创建的文件系统中读取文件

    每个应用程序在iOS系统内斗放在了统一的文件夹目录下

    沙盘路径的位置

    1. 通过Finder查找程序沙盘相对路径

    ~/Library/Application Support/iPhone Simulator

    2. 通过代码查找程序沙盘相对路径

    NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory directory,NSSearchPathDomainMask domainMask,BOOL expandTilde); 

    常见问题:

    模拟器路径内有可能包含多个系统版本的路径

    NSDocumentDirectory————>Documents文件夹

    NSDocumentationDirectory——>Documentation文件夹   //不属于iOS  是Mac-os x中使用

    NSTemporaryDirectory()———>tmp文件夹

    NSLibraryDirectory——————>Library文件夹 

    二.简单对象写入文件

    文件存储的相对目录

    //获取所有的documents文件夹

    NSArray *documentList =NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask,YES); 

    //将最后一个documents文件夹路径作为问价的存储目录

    NSString *documentsPath = documentList.lastObject;

    字符串对象写入文件

    数组对象写入文件

    字典对象写入文件

    二进制对象写入文件

    三.复杂对象写入文件

    什么是复杂对象

    1.在Foundation框架内不存在的数据类

    2.无法在程序内通过writeToFile类型的方法写入到文件内

    3.复杂对象至少包含一个实例对象

    构造复杂对象的生成类

    @interface ABPersonInfo : NSObject

    @property (nonatomic ,retain) NSString *name;

    @property (nonatomic ,retain) NSNumber *age;

    @end
    @implementation ABPersonInfo
    @end 

    NSCoding协议

    @protocol NSCoding
    - (void)encodeWithCoder:(NSCoder *)aCoder;

    - (id)initWithCoder:(NSCoder *)aDecoder;

    @end 

    使复杂对象接受NSCoding协议

    @interface ABPersonInfo:NSObject<NSCoding>

    使复杂对象实现NSCoding协议

    @implementation ABPersonInfo

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

        self = [super init]; if (self) {

            self.age = [aDecoder decodeObjectForKey:@"age"];

            self.name = [aDecoder decodeObjectForKey:@"name"]; }

        return self; }

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

        [aCoder encodeObject:self.age forKey:@"age"]; [aCoder encodeObject:self.name forKey:@"name"];

    }

    @end

    将复杂对象ABPersonInfo的实例对象写入文件

  • 相关阅读:
    Web安全实践
    认证授权的设计与实现
    Elasticsearch 分页查询
    【算法】三色旗
    【转】互联网项目中mysql应该选什么事务隔离级别
    Elasticsearch 聚合
    Elasticsearch 结构化搜索、keyword、Term查询
    Elasticsearch 单字符串多字段查询
    Elasticsearch 复合查询——多字符串多字段查询
    JavaScript 原型与原型链
  • 原文地址:https://www.cnblogs.com/limicheng/p/3876673.html
Copyright © 2011-2022 走看看