ios数据存储

1.文件存储

ios沙盒机制:应用程序只能访问该应用程序在文件系统中创建的目录,

Documents文件夹:文档文件夹,存放持久化的数据,

library文件夹:caches:存放缓存文件,重启或退出程序时,数据不会丢失

Perferences:偏好设置,存放用户设置信息

tmp文件夹:存放临时的缓存数据,在重启或退出程序时清空;

基本文件操作:

- (void)viewDidLoad

{

[super viewDidLoad];

//   文件管理者

//    NSFileManager

//创建文件管理对象

NSFileManager *fm = [NSFileManager defaultManager];

//获取Documents文件夹路径

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

NSString *documentPath = [array objectAtIndex:0];

//   创建文件夹

//    1.创建文件夹的路径

NSString *directoryPath = [documentPath  stringByAppendingPathComponent:@"testFile"];//设置文件夹路径,stringByAppendingPathComponent方法会自动用"/"分隔形成完整路径,

[fm createDirectoryAtPath:directoryPath withIntermediateDirectories:YES attributes:nil error:nil];

//    2.创建文件

//    拼接文件的路径

NSString *filePath = [directoryPath stringByAppendingPathComponent:@"file"];

//    NSData  用来包装数据的

//    存的都是二进制数据

//    可以存各种数据 字符串 音频  图像 数组 字典

//   把字符串转换成data

NSString *string = @"你好";

//   UTF8 编码

NSData *data = [string dataUsingEncoding:NSUTF8StringEncoding];

//    创建文件

[fm createFileAtPath:filePath contents:data attributes:nil];

//    判断文件是否存在

BOOL success = [fm fileExistsAtPath:filePath];

NSLog(@"是否存在文件%d",success);

//    来获取某个路径下的所有文件的路径

NSArray *subpathArray = [fm subpathsAtPath:directoryPath];

for (NSString *path in subpathArray)

{

NSLog(@"---->%@",path);

}

NSString *path2 = [directoryPath stringByAppendingPathComponent:@"file副本"];

//    判断内容是否相等

//    contentsEqualAtPath

BOOL success1 = [fm contentsEqualAtPath:filePath andPath:path2];

NSLog(@"success1 ==  %d",success1);

//    移动某路径下的元素到另外一个路径

NSString *destinationPath = [NSHomeDirectory() stringByAppendingPathComponent:@"a.txt"];

//    把文件移动到某文件路径(而不是指的目录)

[fm moveItemAtPath:filePath toPath:destinationPath error:nil];

//    复制到某个文件路径下

[fm copyItemAtPath:destinationPath toPath:filePath error:nil];

//    移除某路径下的文件

[fm removeItemAtPath:filePath error:nil];

}

时间: 2024-08-04 15:24:26

ios数据存储的相关文章

iOS数据存储的几种方式

iOS的数据存储是iOS应用开发的重要知识点: 关于这方面知识,网上有很多介绍,但对于代码层次的使用方式并未有系统全面介绍.此文章针对iOS稍熟悉的童鞋,需要对CoreData的原理有一定的了解.目前存储方式大概有以下几种: NSKeyedArchiver  适用简单数据加密 NSUserDefaults  适用配置参数 Write  文件操作,同NSKeyedArchiver SQLite3  操作较复杂,不建议使用. CoreData  取代SQLite3,但要遵循NSManagedObje

iOS数据存储之CoreData

iOS中大量数据的储存一个是SqLite,另一个就是CoreData,CoreData允许程序员以面向对象的思维方式的方法去操作面向表的数据库 做过Java开发的对这个应该很熟悉,Java中的Hibernate跟CoreData就很相似 CoreData应该怎样使用呢? 第一步,新建工程后导入CoreData框架 第二部,创建CoreData的数据模型创建步骤如下 然后给你的model起个名字,创建完成后你会看到一个这个文件(相当于数据库文件) 点击这个文件,然后看下图 点击图中1,新建实体(类

IOS数据存储 —— 2 存储方式

IOS数据存储方式 iOS开发常用数据存储方式有:plist.偏好设置 NSUserDefaults.对象归档 NSKeyedArchiver.SQLite3和Core Data 1. plist文件 存储 plist文件通常用于储存用户设置,利用xml属性列表归档NSDictionary.NSArray.NSNumber等类型数据 在使用plist进行数据存储和读取,只适用于系统自带的一些常用类型才能用 注意:plist不能存储自定义对象 2. 偏好设置 NSUserDefaults 偏好设置

iOS数据存储之SqLite3

iOS中数据存储的方式有很多中,当数据量较大的时候偏好设置,归档和plist就无法满足需求了 这时候就需要用SqLite或者CoreData来存储数据 下面就来介绍一下如何使用SqLite存储数据 要使用Sqlite必须引入libSqlite3.dylib库 要使用首先要有一个handle句柄(handle句柄,在C语言中,通常把用于控制某类东西的叫做句柄,实际上是一个指针.) // 数据库句柄 sqlite3 *_db; SqLite存储数据时也是存在一个文件中的,只不过这个文件格式是定制的,

iOS数据存储类型 及 堆(heap)和栈(stack)

iOS数据存储类型 及 堆(heap)和栈(stack) 一般认为在c中分为这几个存储区: 1栈 --  由编译器自动分配释放. 2堆 --  一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收. 3全局区(静态存储区)-- 全局变量和静态变量的存储是放在一块区域 ,程序退出后自动释放 .全局区又分为全局初始化区和全局未初始化区.初始化的全局变量和静态变量存放在全局初始化区,未初始化的全局变量和未初始化的静态变量存放在相邻的另一块区域. 4常量区-- 专门放数字/字符常量的地方, 程

iOS数据存储之属性列表理解

iOS数据存储之属性列表理解 数据存储简介 数据存储,即数据持久化,是指以何种方式保存应用程序的数据. 我的理解是,开发了一款应用之后,应用在内存中运行时会产生很多数据,这些数据在程序运行时和程序一起驻留在内存中,一旦程序运行结束从内存中退出后,这些数据也就相应消失了.等到再次运行程序的时候,之前的那些数据又要重新计算.但是对于一些应用,我们需要将程序产生的数据持久的保存起来,使得应用重启之后这些数据不会丢失,这时候就需要用到数据的持久化技术. 在iOS设备上实现数据持久化存储的方式有很多中机制

iOS 数据存储 - 01基本介绍

1.应用沙盒 sandbox 1. 什么是沙盒 每个iOS应用都有自己的应用沙盒(应用沙盒就是应用的文件夹),与其他文件系统隔离.应用必须待在自己的沙盒里,其他应用不能访问该沙盒. 2.应用沙盒结构 应用程序包: 包含了所有的 资源文件和 可执行文件 Documents: 保存应用运行时生成的需要持久化的数据,iTunes同步设备时会备份该目录.例如,游戏应用可将游戏存档保存在该目录.保存相对重要的数据 tmp: 保存应用运行时所需的临时数据,使用完毕后再将相应的文件从该目录删除.应用没有运行时

IOS数据存储方式

1,ios中常用的数据存储方式有4中 1>XML属性列表(plist)归档 2>Preference(偏好设置) 3>NSKeyedArchiver归档 4>SQLite 2,每个应用程序都有自己的沙盒,沙河的路径为 /Users/apple/Library/Application Support/iPhone Simulator/7.0/Applications(apple为用户名,7.0位模拟器版本) 每个应用沙河都是独立的,里面的结构主要有: Document:这个主要用来保

iOS - 数据存储方式(本地化)

iOS中数据存储方式 一般使用以下4种: 1.NSKeyedAchiever//序列化 存放对象 2.NSUserDefaults//本质是plist存储 NSData.NSString.NSNumber.NSDate.NSArray.NSDictionary //存储到沙盒下的Library/Preferences/ 3.writeToFile:atomically://直接写文件方式:NSString.NSArray.NSDictionary.NSData.NSNumber,存放在一个属性列

IOS 数据存储之 FMDB 详解

FMDB是用于进行数据存储的第三方的框架,它与SQLite与Core Data相比较,存在很多优势. FMDB是面向对象的,它以OC的方式封装了SQLite的C语言API,使用起来更加的方便,不需要过多的关心数据库操作的知识.但是它本身也存在一些问题,比如跨平台,因为它是用oc的语言封装的,所以只能在ios开发的时候使用,如果想实现跨平台的操作,来降低开发的成本和维护的成本,就需要使用比较原始的SQLite. Core Data是ORM的一种体现,使用Core Data需要用到模型数据的转化,虽