iOS知识点总结——数据存储
2015-02-04 16:13
274 查看
iOS知识点总结——数据存储
在iOS开发中数据的存储有很多种,最常见的无非是NSUserDefault 、Plist、 DB、 写文件 、 CoreData几种,以下分别对几种方式的用途及用法进行说明:
1. NSUserDefault
NSUserDefaults类用于保存应用程序设置和属性以及用户数据。例如,你可以存储用户在应用程序中使用的图片或默认颜色方案。这些对象存储在iOS所谓的“defaults系统”中。iOS的defaults系统在整个app中都是可用的,因此存放到defaults系统中的数据也是整个应用程序生命周期中可用的。也就是说,无论用户关闭程序还是关机,在用户再次打开程序或开机后这些数据仍然存在。NSUserDefaults可以存储的数据类型包括:NSData、NSString、NSNumber、NSDate、NSArray、NSDictionary、BOOL等。如果你想保存其他类型,如UIImage,你应该进行编码(即archive),或者将它转换为NSData、NSNumber或者NSString。
NSUserDefault的用法很简单, [[NSUserDefaults standardUserDefaults]setObject:obj forKey:@“”];可以根据你存储的数据类型不同而引用不同的方法,读取NSUserDefault的方法也很简单[[NSUserDefault standardUserDefaults]objectForkey:@“”];
2.Plist文件的读写
Plist文件在iOS中使用非常之广泛,在做iOS开发时,经常用到到plist文件, 那plist文件是什么呢? 它全名是:Property
List,属性列表文件,它是一种用来存储串行化后的对象的文件。属性列表文件的扩展名为。plist,因此通常被称为 plist文件。文件是xml格式的。
Plist文件通常用于储存用户设置,也可以用于存储捆绑的信息
在iOS开发中Plist文件的读写分为两种,一种是在本地工程文件中已经有Plist文件,直接读写,第二种是用户将数据存储为Plist文件放在沙盒中,下面对两种Plist文件的读写代码:
(1)本地Plist文件读写
读:
NSString *plistPath = [[NSBundle
mainBundle] pathForResource:@"Plistname"
ofType:@"plist"];
NSMutableDictionary *data = [[[NSMutableDictionary
alloc]
initWithContentsOfFile:plistPath]
autorelease];
return data;
写:
NSArray *paths=NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES);
NSString *path=[paths objectAtIndex:0];
NSString *filename=[path
stringByAppendingPathComponent:plistName];
NSFileManager* fm = [NSFileManager
defaultManager];
[fm createFileAtPath:filename
contents:nil
attributes:nil];
//创建一个dataArr,写到plist文件里,注意这里的dataArr是用户要写入的数据,也可以是dic
[dataArr writeToFile:filename
atomically:YES];
(2)用户自己存储和读取沙盒中的Plist文件
写:
//获取应用程序沙盒的Documents目录
NSArray *paths=NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES);
NSString *plistPath1 = [paths
objectAtIndex:0];
//得到完整的文件名
NSString *filename=[plistPath1
stringByAppendingPathComponent:plistName];
//输入写入
[dic
writeToFile:filename atomically:YES];
读:
NSArray *paths=NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES);
NSString *path=[paths
objectAtIndex:0];
NSString *filename=[path
stringByAppendingPathComponent:@"StockData.plist"];
//读文件
NSMutableDictionary *data= [NSDictionary
dictionaryWithContentsOfFile:filename];
return data;
从上述代码我们可以看出来,在读取plist文件的时候主要是获取的路径不一样,前者是获取了工程文件的路径,后者是获取本地沙盒文件的路径。在写Plist文件的时候,前者需要创建一个NSFileManager对象,而后者是不需要创建这种管理对象的。
3. DataBase
任何应用程序的开发都需要有一个数据存储单元,无论是Web应用还是移动端应用,特别是在一些需要有大量数据的情况下,iOS开发采用轻量型数据库Sqlite(Android和Win8开发也采用该数据库),对于Sqlite的操作,主要有两种方式,一是采用Sqlite命令直接操作,二是采用FMDB进行操作,后者使用非常之广泛,在笔者所经历的程序中全部采用的是FMDB进行数据管理,对于FMDB的使用方法已经无从介绍,可以在https://github.com/ccgus/fmdb 上查找到。
iOS知识点总结——数据存储
在iOS开发中数据的存储有很多种,最常见的无非是NSUserDefault 、Plist、 DB、 写文件 、 CoreData几种,以下分别对几种方式的用途及用法进行说明:1. NSUserDefault
NSUserDefaults类用于保存应用程序设置和属性以及用户数据。例如,你可以存储用户在应用程序中使用的图片或默认颜色方案。这些对象存储在iOS所谓的“defaults系统”中。iOS的defaults系统在整个app中都是可用的,因此存放到defaults系统中的数据也是整个应用程序生命周期中可用的。也就是说,无论用户关闭程序还是关机,在用户再次打开程序或开机后这些数据仍然存在。NSUserDefaults可以存储的数据类型包括:NSData、NSString、NSNumber、NSDate、NSArray、NSDictionary、BOOL等。如果你想保存其他类型,如UIImage,你应该进行编码(即archive),或者将它转换为NSData、NSNumber或者NSString。
NSUserDefault的用法很简单, [[NSUserDefaults standardUserDefaults]setObject:obj forKey:@“”];可以根据你存储的数据类型不同而引用不同的方法,读取NSUserDefault的方法也很简单[[NSUserDefault standardUserDefaults]objectForkey:@“”];
2.Plist文件的读写
Plist文件在iOS中使用非常之广泛,在做iOS开发时,经常用到到plist文件, 那plist文件是什么呢? 它全名是:Property
List,属性列表文件,它是一种用来存储串行化后的对象的文件。属性列表文件的扩展名为。plist,因此通常被称为 plist文件。文件是xml格式的。
Plist文件通常用于储存用户设置,也可以用于存储捆绑的信息
在iOS开发中Plist文件的读写分为两种,一种是在本地工程文件中已经有Plist文件,直接读写,第二种是用户将数据存储为Plist文件放在沙盒中,下面对两种Plist文件的读写代码:
(1)本地Plist文件读写
读:
NSString *plistPath = [[NSBundle
mainBundle] pathForResource:@"Plistname"
ofType:@"plist"];
NSMutableDictionary *data = [[[NSMutableDictionary
alloc]
initWithContentsOfFile:plistPath]
autorelease];
return data;
写:
NSArray *paths=NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES);
NSString *path=[paths objectAtIndex:0];
NSString *filename=[path
stringByAppendingPathComponent:plistName];
NSFileManager* fm = [NSFileManager
defaultManager];
[fm createFileAtPath:filename
contents:nil
attributes:nil];
//创建一个dataArr,写到plist文件里,注意这里的dataArr是用户要写入的数据,也可以是dic
[dataArr writeToFile:filename
atomically:YES];
(2)用户自己存储和读取沙盒中的Plist文件
写:
//获取应用程序沙盒的Documents目录
NSArray *paths=NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES);
NSString *plistPath1 = [paths
objectAtIndex:0];
//得到完整的文件名
NSString *filename=[plistPath1
stringByAppendingPathComponent:plistName];
//输入写入
[dic
writeToFile:filename atomically:YES];
读:
NSArray *paths=NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES);
NSString *path=[paths
objectAtIndex:0];
NSString *filename=[path
stringByAppendingPathComponent:@"StockData.plist"];
//读文件
NSMutableDictionary *data= [NSDictionary
dictionaryWithContentsOfFile:filename];
return data;
从上述代码我们可以看出来,在读取plist文件的时候主要是获取的路径不一样,前者是获取了工程文件的路径,后者是获取本地沙盒文件的路径。在写Plist文件的时候,前者需要创建一个NSFileManager对象,而后者是不需要创建这种管理对象的。
3. DataBase
任何应用程序的开发都需要有一个数据存储单元,无论是Web应用还是移动端应用,特别是在一些需要有大量数据的情况下,iOS开发采用轻量型数据库Sqlite(Android和Win8开发也采用该数据库),对于Sqlite的操作,主要有两种方式,一是采用Sqlite命令直接操作,二是采用FMDB进行操作,后者使用非常之广泛,在笔者所经历的程序中全部采用的是FMDB进行数据管理,对于FMDB的使用方法已经无从介绍,可以在https://github.com/ccgus/fmdb 上查找到。
相关文章推荐
- iOS知识点总结——数据存储
- iOS应用数据存储的常用方式 总结
- IOS开发模块总结(一)本地数据存储5 NSFileManager
- IOS开发模块总结(一)本地数据存储7 NSKeyedArchiver归档
- IOS开发模块总结(一)本地数据存储1 plist
- iOS数据存储方法总结
- iOS开发学习总结——数据存储和参数传递
- Atitit 研发体系建立 数据存储与数据知识点体系知识图谱attilax 总结
- IOS开发模块总结(一)本地数据存储3 sqlite(FMDB开源代码对sqlite的封装)
- iOS 各种数据类型的转换 和知识点的总结
- 数据存储知识点总结
- 数据结构——线性表——散列存储结构——哈希表知识点总结 原创 2017年05月14日 10:08:40 散列(hashing)是一种重要的存储方法,也是一种常见的查找方法。 基本思想:以结点的
- IOS开发模块总结(一)本地数据存储4 NSUserDefaults
- Atitit 研发体系建立 数据存储与数据知识点体系知识图谱attilax 总结
- iOS文件使用总结(数据持久化存储)
- iOS开发中本地数据存储的总结
- IOS中数据的存储方式总结 (待续。。。。。)
- IOS开发模块总结(一)本地数据存储6 keychain使用介绍
- IOS开发模块总结(一)本地数据存储2 sqlite