美文网首页
iOS中数据存储的常用方法

iOS中数据存储的常用方法

作者: 彼岸的黑色曼陀罗 | 来源:发表于2016-09-06 19:26 被阅读0次

1.XML属性列表plist归档

  • plist文件主要存数组和字典
  • NSHomeDirectory()获取沙盒根目录
  • NSTmporaryDirectory()临时文件夹
  • 可以存自定义对象吗?
    • 自己写的类(Person)是不能存放在plist文件当中的
    • plist文件当中是没有办法存放自定义对象的
    • 数组

      • 获取沙盒目录NSString * path = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory/NSCacheDirectory,搜索的范围NSUserDomainMask,是否展开全路径YES)[0]是一个数组,取出第0个数据,
        • 参数
          • NSDocumentDirectory:要搜索的目标
          • NSUserDomainMask:搜索的范围
          • NO/YES:是否展开路径
        • 跨平台C语言的接口,可以在Mac上开发
      • 拼接文件名称 path:stringByAppendingString:@“/array.plist”直接在后面追加
      • stringByAppendingPathComponent:@"array.plist"
      • array writeToFile:atomically:
    • 字典

      • stringByAppendingPathComponent:
      • writeToFile:atomically:
    • 数组

      • path: stringByAppendingPathComponent:@"array.plist"
      • arrayWithContensOfFile:
    • 字典

      • stringByAppendingPathComponent:
      • dictionaryWithContentsOfFile:

2.Preference(偏好设置)

  • 用来存放用户用户的偏好,用户名,密码,版本号
  • NSUserDefault本质就是plist,字典类型的plist文件
  • 保存到同一个plist文件当中
  • 可以存放自定义对象吗?
    • 不能,偏好设置本质是plist文件
  • 创建单例对象 NSUserDefaults * def = [ NSUserDefault standardUserDefaults]
  • [def setObject:@"xmg"forKey:@"name"]
  • [def setInteger:forKey:]
  • [def setBool:forKey:]
  • [def synchronize]立马写入(ios7之后不要这样写)
  • 会自动存放到沙盒文件里的preferences

-

  • NSUserDefaults * def = [ NSUserDefault standardUserDefaults]
  • NSString * name = [def objectForKey:@"name"]
  • [integerForKey:]
  • [def boolForKey:]

3.NSKeyedArchiver归档(NSCoding)

  • 可以存放自定义对象吗?

    • 专门用于存放自定义对象的
  • NSKeyedArchiver会调用保存对象的encodeWithCoder:方法,询问要保存该对象的哪些属性

    • 必须要实现encodeWithCoder:这个方法
      • encodeObject:forKey:
    • 必须要遵守<NSCoding>这个协议
  • 获取沙盒目录

    • NSSearchPathForDirectoriesInDomains()[0]
  • 拼接文件名

    • stringByAppendingPathComponent:@“”文件名称以及后缀随遍写
  • NSKeyedArchiver archiveRootObject:对象 toFile:沙盒路径

  • NSKeyedArchiver会调用保存对象的encodeWithCoder:方法,询问要保存该对象的哪些属性

  • 必须要实现encodeWithCoder:这个方法

    • encodeObject:forKey:
  • 必须要遵守<NSCoding>这个协议

  • NSKeyedUnarchiver unarchiveObjectWithFile:
  • 当调用NSKeyedUnarchiver时,会调用要保存对象的initWithCoder:询问要取出该对象的哪些属性
  • init开头是一个构造方法
    • self = [super init]
    • [aDecoder decodeObjectForKey:] 把取出的值赋值给对象属性
  • 为什么没有[super initWithCoder]

    • UIView遵守了NSCoding协议
    • NSObject没有遵守NSCoding协议
    • 即父类没有遵守NSCoding协议,所以就不能写出来super initWithCoder
  • initWithCoder:方法什么时候调用

    • 当开始解析一个文件的时候调用
  • awakeFromNib

    • 当解析nib完毕时候调用
  • 控制器销毁了,控制器的view不一定销毁

  • 当使用IBOutlet时用weak,它并不是马上就会释放,内部有一个隐式的强指针对它有一个强引用

4.SQLite3

5.Core Data

  • 苹果对SQLite3的封装
  • 面向对象的存储

相关文章

  • iOS中数据存储的常用方法

    1.XML属性列表plist归档 plist文件主要存数组和字典 NSHomeDirectory()获取沙盒根目录...

  • 数据存储(归档解档,沙河存储)

    数据存储 iOS应用数据存储的常用方式 XML属性列表(plist)归档 存Documents中 Prefere...

  • iOS

    1、iOS中方法延迟执行的几种方式? 2、iOS常用的数据存储方式有哪些? 2.1、iOS沙盒目录机构是怎样的? ...

  • IOS开发学习笔记之数据存储

    ++ 数据存储++ios中常用的持久化数据的方法:1、属性列表:Xcode的Property List;再序列化到...

  • iOS数据存储

    iOS应用数据存储方式(XML属性列表-plist) 一、ios应用常用的数据存储方式 1.plist(XML属性...

  • ios数据存储

    数据存储 iOS应用数据存储的常用方式 - XML属性列表(plist)归档 - Preference(偏好设置)...

  • 应用沙盒(非常基础篇--)

    IOS中数据存储的常用方式: XML属性列表(plist)归档 Preference(偏好设置) NSKeyedA...

  • iOS中常用的数据存储

    iOS中常用的数据存储 数据存储有四种方案: NSUserDefault KeyChain File : plis...

  • 数据存储

    iOS应用数据存储的常用方式 1. Plist存储(属性列表) Plist存储(Documents) Plist提...

  • iOS数据持久化

    iOS数据持久化 iOS应用数据存储的常用方式 XML属性列表(plist)归档 Preference(偏好设置)...

网友评论

      本文标题:iOS中数据存储的常用方法

      本文链接:https://www.haomeiwen.com/subject/ftodettx.html