IOS文件系统和数据的永久性存储
IOS中的文件系统和数据的永久性存储
目录
- 概述——对文件系统和数据的永久性存储的理解
- IOS中数据的永久性存储
NSUserDefaults
解档和归档
数据库
- 文件系统
NSBundle
IOS的Document、Library(Caches、Preference)、tmp
- NSFileManager
获得NSFileManager
判断文件夹/文件是否存在
创建文件夹
创建文件
删除文件或文件夹
概述——对文件系统和数据的永久性存储的理解
程序运行时数据的读取和写出,往往都是存在内存中的,当程序运行结束时,这些数据就会随着内存的清空而消失。有时,我们需要读取本地文件或者永久性的存储一些有用的数据时,我们就需要使用到文件系统和数据的永久性存储技术。IOS中数据的永久性存储的实现方式可以分为:NSUserDefaults、解档和归档、数据库;文件系统,读取或存储文件的路径有:NSBundle(只读)、IOS的Document、Library(Caches、Preference)、tmp;操作文件夹和文件的类:NSFileManager;常用的文件格式:.plist、.txt、.archiver;
IOS中数据的永久性存储
NSUserDefaults
创建:NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
设值:例如:[userDefault setInteger: forKey: ];[userDefault setObject: forKey: ];[userDefault setURL: forKey: ];
获值:例如:[userDefault integerForkey: ];[userDefault objectForKey: ];[userDefault URLForKey: ];
解档和归档
Foundation对象的归档和解档;
自定义对象(该对象需要遵守和实现NSCoding协议)的归档和解档;
涉及到的类:NSKeyedArchiver和NSKeyedUnarchiver;
数据库
详细请看《数据库》
文件系统
NSBundle
获得NSBundle的路径:
NSString *path = [[NSBundle mainBundle] pathForResource: ofType: ]];
注意:NSBundle中的文件只能进行读取不能进行更改,即使对NSBundle中的文件进行更改,其实是更改内存中其所对应的文件,实际的文件是没有被更改过的;
IOS的Document、Library(Caches、Preference)、tmp
获得Document路径方法:
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES);
NSString *document_path = [paths objectAtIndex:0];
注意:可以在Document中进行读写操作;
对这些不同路径的理解
NSFileManager
获得NSFileManager
NSFileManager *fileManager = [NSFileManager defaultManager];
判断文件夹/文件是否存在:
[fileManager fileExistsAtPath: ];
创建文件夹
[fileManager createDirectoryAtPath: withIntermediateDirectories: createIntermediates attributes: error: ] //参数createIntermediates为是否创建新建文件目录里不存在的中间目录,详见文档,根据error判断是否成功创建
创建文件的方法:
[fileManager createFileAtPath: contents: attributes: ]; //成功创建和文件已经存在都会返回YES,所以有时需要让程序更清晰,需要在创建文件前先判断文件是否已经存在,存在则不进行创建
删除文件或文件夹
[fileManager removeItemAtPath: error: ];
注意
Path为文件夹/文件的路径全名
存在疑问
如何设置创建文件的读写权限;
IOS文件系统和数据的永久性存储的更多相关文章
- iOS中的数据持久化方式
iOS中的数据持久化方式,基本上有以下四种:属性列表.对象归档.SQLite3和Core Data. 1.属性列表 涉及到的主要类:NSUserDefaults,一般 [NSUserDefaults ...
- iOS开发系列--数据存取
概览 在iOS开发中数据存储的方式可以归纳为两类:一类是存储为文件,另一类是存储到数据库.例如前面IOS开发系列-Objective-C之Foundation框架的文章中提到归档.plist文件存储, ...
- ios的网络数据下载和json解析
ios的网络数据下载和json解析 简介 在本文中,笔者将要给大家介绍如何使用nsurlconnection 从网上下载数据,以及解析json数据格式,以及如何显示数据和图片的异步下载显示. 涉及的知 ...
- 【转】iOS开发系列--数据存取
原文: http://www.cnblogs.com/kenshincui/p/4077833.html#SQLite 概览 在iOS开发中数据存储的方式可以归纳为两类:一类是存储为文件,另一类是存储 ...
- IOS学习:ios中的数据持久化初级(文件、xml、json、sqlite、CoreData)
IOS学习:ios中的数据持久化初级(文件.xml.json.sqlite.CoreData) 分类: ios开发学习2013-05-30 10:03 2316人阅读 评论(2) 收藏 举报 iOSX ...
- iOS开发网络数据之AFNetworking使用
iOS开发网络数据之AFNetworking使用 如何选择AFNetworking版本 首先得下载AFNetworking库文件,下载时得首先弄清楚,你将要开发的软件兼容的最低版本是多少.AFNetw ...
- iOS学习——JSON数据解析(十一)
在之前的<iOS学习——xml数据解析(九)>介绍了xml数据解析,这一篇简单介绍一下Json数据解析.JSON 即 JavaScript Object Natation,它是一种轻量级的 ...
- IOS开发中数据持久化的几种方法--NSUserDefaults
IOS开发中数据持久化的几种方法--NSUserDefaults IOS 开发中,经常会遇到需要把一些数据保存在本地的情况,那么这个时候我们有以下几种可以选择的方案: 一.使用NSUserDefaul ...
- iOS之网络数据下载和JSON解析
iOS之网络数据下载和JSON解析 简介 在本文中笔者将要给大家介绍IOS中如何利用NSURLconnection从网络上下载数据以及如何解析下载下来的JSON数据格式,以及如何显示数据和托图片的异步 ...
随机推荐
- java 开发环境
jdk:包括jre,自己下载即可. 客户端只需安装jre即可. 安装路径:C:\jdk7.0\jdk1.7.0_25\bin (适时更改) 环境变量是从前往后找 测试成功:cmd java ...
- 使用Ambari部署hadoop集群
准备工作 1. 设置sudo免密码登陆 由于CentOS安装之后,普通用户无sudo权限,故应该设置sudo权限. 参考文章:http://www.cnblogs.com/maybob/p/32988 ...
- T-SQL 批处理
批处理简介 批处理是作为一个逻辑单元的T-SQL语句.如果一条语句不能通过语法分析,那么不会运行任何语句.如果一条语句在运行时失败,那么产生错误的语句之前的语句都已经运行了. 为了将一个脚本分为多个批 ...
- 利用AuthorizeAttribute属性简单避免 MVC 中的跨域攻击
跨域攻击---自然来路页面和目标页面不在同一个域下,所以直接判断来路域和当前自己的域就可以了. 可以广泛应用于表单提交,ajax调用或者某些不想让用户直接输入网址看到的页面 [csharp] view ...
- Active Record快速入门指南
一.概述 Active Record(中文名:活动记录)是一种领域模型模式,特点是一个模型类对应关系型数据库中的一个表,而模型类的一个实例对应表中的一行记录.关系型数据库往往通过外键来表述实体关系,A ...
- ASP.NET的分页方法(二)
第二讲主要使用到了常用的分页控件aspnetpager,这里对他就行一个简单的应用,具体大家可以到杨涛的博客上去寻找相关的DLL, 首先要先引用AspNetPager.dll,然后把这个DLL同时添加 ...
- Codeforces 707 E. Garlands (二维树状数组)
题目链接:http://codeforces.com/problemset/problem/707/E 给你nxm的网格,有k条链,每条链上有len个节点,每个节点有一个值. 有q个操作,操作ask问 ...
- HDU 5074 Luck Competition (暴力,概率)
题意:有 n 个人参加比赛,给出n-1个人的成绩,然后要选出一个幸运的人,先把所有的分数求平均数,然后再*2/3,那个不大于这个数,且最接近的数,就是最幸运的, 让你设置最后一个人的分,使他是最幸运的 ...
- Spring JTA应用JOTM & Atomikos I Application
关于Spring JTA的介绍非常多了,这里就不再一再阐述其优越性怎么怎么了,直接开始正题.一个大致的需求如下,用户在进行增删改操作时,会同时更新2至3个数据库的数据表,操作需要事务来包裹,以便在操作 ...
- Eclipse 安装对 Java 8 的支持
Java 8 正式版今天已经发布了(详情),但最常用的 Java 开发工具 Eclipse 还没有正式发布对 Java 8 的支持.不过目前可以通过更新 JDT 来支持 Java 8.步骤如下: 菜单 ...