1.   NSUserDefaults

    //TODO: 1.NSUserDefaults    NSUserDefaults类除了可以存储数组、字典、NSdata外,还可以直接存储OC基本类型属性。但是不能直接作用到自定义对象.
[[NSUserDefaults standardUserDefaults] setObject:@"" forKey:@""];//设置初始值
[[NSUserDefaults standardUserDefaults] synchronize];//进行同步 [[NSUserDefaults standardUserDefaults] objectForKey:@""];//取值

2.    Plist

    //TODO: 2.Plist文件
//1.根据已有plist文件取值
NSString *pathString = [[NSBundle mainBundle] pathForResource:@"Property List" ofType:@"plist"];
//如果plist文件是一个NSArray,用数组取
NSArray *array = [NSArray arrayWithContentsOfFile:pathString];
//如果plist文件是一个NSDictionary,用字典取
NSDictionary *dictionary = [NSDictionary dictionaryWithContentsOfFile:pathString];
    //2.创建plist文件
NSArray *homeDirectory = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentString = homeDirectory[];
NSString *documentPath = [documentString stringByAppendingPathComponent:@"GCD.plist"];
NSFileManager *fileManager = [NSFileManager defaultManager];
[fileManager createFileAtPath:documentPath contents:nil attributes:nil]; NSArray *fileArray = @[@{@"name":@"one"},@{@"name":@"two"}];
[fileArray writeToFile:documentPath atomically:YES];//写入数据 NSArray *readArray = [NSArray arrayWithContentsOfFile:documentPath];//读取数据

3.  归档、解档

    //TODO: 3.归档/解档
archiveModel *model = [[archiveModel alloc]init];
model.name = @"小明";
model.age = @"";
model.sex = @"男"; NSArray *pathArray = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *filePath = [pathArray[] stringByAppendingPathComponent:@"model"]; /*
一.只归档一个对象 [NSKeyedArchiver archiveRootObject:model toFile:filePath];
*/ /*
一.只解档一个对象
if ([[NSFileManager defaultManager] fileExistsAtPath:filePath]) {
//路径存在
archiveModel *readModel = [NSKeyedUnarchiver unarchiveObjectWithFile:filePath];
NSLog(@"解档:%@",readModel);
}
*/ //二.归档多个对象
NSMutableData *data = [[NSMutableData alloc]init];
NSKeyedArchiver *keyedArchiver = [[NSKeyedArchiver alloc]initForWritingWithMutableData:data];
[keyedArchiver encodeObject:model forKey:@"model"];
//[keyedArchiver encodeObject:model forKey:@"key1"];
//[keyedArchiver encodeObject:model forKey:@"key2"];
[keyedArchiver finishEncoding]; if ([data writeToFile:filePath atomically:YES]) {
NSLog(@"归档成功");
} //二.解档多个对象
if ([[NSFileManager defaultManager] fileExistsAtPath:filePath]) {
NSData *data = [NSData dataWithContentsOfFile:filePath];
NSKeyedUnarchiver *keyedUnarchive = [[NSKeyedUnarchiver alloc]initForReadingWithData:data];
archiveModel *readModel = [keyedUnarchive decodeObjectForKey:@"model"];
//archiveModel *readModel = [keyedUnarchive decodeObjectForKey:@"key1"];
//archiveModel *readModel = [keyedUnarchive decodeObjectForKey:@"key2"];
[keyedUnarchive finishDecoding]; }

iOS开发-本地存储(偏好设置,Plist,归档)的更多相关文章

  1. iOS:沙盒、偏好设置、归档、解归档

    一.沙盒和应用程序包 •iOS应用程序只能在为该改程序创建的文件系统中读取文件,不可以去其它地方访问,此区域被称为沙盒 •iOS常用目录: –Bundle –Documents –Library/Ca ...

  2. IOS开发数据存储篇—IOS中的几种数据存储方式

    IOS开发数据存储篇—IOS中的几种数据存储方式 发表于2016/4/5 21:02:09  421人阅读 分类: 数据存储 在项目开发当中,我们经常会对一些数据进行本地缓存处理.离线缓存的数据一般都 ...

  3. iOS 图片本地存储、本地获取、本地删除

    在iOS开发中.经常用到图片的本地化. iOS 图片本地存储.本地获取.本地删除,可以通过以下类方法实现. p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: ...

  4. (转)iOS开发之同一应用设置不同图标和名称

    本文转自:http://www.devzeng.com/blog/ios-two-version-app-setting-profile.html iOS开发之同一应用设置不同图标和名称 SEP 6T ...

  5. IOS第13天(2,私人通讯录,plist存储,偏好设置,归档)

    ***************plist存储 // 当点点击保存的时候调用 //保存 - (IBAction)save:(id)sender { // 获取沙盒的根路径 // NSString *ho ...

  6. 持久化存储——偏好设置,plist,归档---学习笔记二

    //一. 本地持久化 //1.沙盒 //1.1 应用程序包:存放的是应用程序的源文件,包括资源文件和可执行文件 NSString *path = [[NSBundle mainBundle]bundl ...

  7. iOS学习笔记15-序列化、偏好设置和归档

    一.本地持久化 所谓的持久化,就是将数据保存到硬盘中,使得在应用程序或机器重启后可以继续访问之前保存的数据.在iOS开发中,有很多数据持久化的方案,接下来我将尝试着介绍一下5种方案: plist文件( ...

  8. iOS学习之应用偏好设置

    如今,即便是最简单的计算机程序也会包含一个偏好设置窗口,用户可以在其中设置应用专属的选项.在MAC OS X中,Preferences...菜单通常位于应用菜单中.选择该菜单项会弹出一个窗口,用户可以 ...

  9. objective-c ios webkit 本地存储local-storage

    我有一个Cocoa / Objective-C的应用程序,它嵌入了一个WebKit的web视图.我需要打开的数据库支持和本地存储.我知道这是可以做到-我有它在Safari中工作-但我无法找到如何设置这 ...

随机推荐

  1. 微软消息分析器(Microsoft Message Analyzer )更新至1.2版-2015-1-20

    就在刚才,收到了微软Connect的邮件推送,大名鼎鼎的微软消息分析器更新至1.2版,并且有公众下载链接,大家可以在这里进行下载. 这里简单摘录一下博客里面提到的新版所增加的功能与功能的改进方面. G ...

  2. 【Asphyre引擎】发布了新版本V101

    引擎简称还是PXL,但是这个P是Platform而不是Pascal. 修复了一些bug,增加了轻量级的随机数发生器,进一步完善了XML的解析. 不是很明白,为何把Pascal扩展库改成Platform ...

  3. The Dirichlet Distribution 狄利克雷分布 (PRML 2.2.1)

    The Dirichlet Distribution 狄利克雷分布 (PRML 2.2.1) Dirichlet分布可以看做是分布之上的分布.如何理解这句话,我们可以先举个例子:假设我们有一个骰子,其 ...

  4. js执行顺序

    我们知道有个全局的 window对象,js的一切皆window上的属性和方法.window上有个window.document属性,记录了整个html的dom树,document是顶层. body 和 ...

  5. 线性表 - 从零开始实现by C++

    参考链接:数据结构探险之线性表篇     线性表

  6. ATL一:CWindowImpl

    1,#ifdef _ATL_DISABLE_NO_VTABLE#define ATL_NO_VTABLE#else#define ATL_NO_VTABLE __declspec(novtable)# ...

  7. ACdream训练赛系列のJava专场

    /* * this code is made by mhy12345 * Problem: 1669 * Verdict: Accepted * Submission Date: 2015-04-21 ...

  8. 记一次诡异的jetty问题

    问题出现 用eclipse开发,用jetty跑某个项目时,如果是jsp页面,会出现以下错误. ------------------------------------------------ java ...

  9. 分布式进阶(二)Ubuntu 14.04下安装Dockr图文教程(二)

    4.1 构建我们自己的映像 构建Docker映像有两种方法: •通过docker commit(提交)命令 •通过docker build(构建)命令以及Docker文件(Dockerfile) 目前 ...

  10. HDU - 1078 FatMouse and Cheese (记忆化搜索)

    FatMouse has stored some cheese in a city. The city can be considered as a square grid of dimension ...