本文转载至http://blog.csdn.net/chen505358119/article/details/9278539

            这里我总结了一下数据的存储方式,一是保存在沙盒里创建文件,再把数据写到文件中,二是保存到plist中,三是保存到数据库中.

1.保存到文件中需要借助NSKeyedArchiver和NSKeyedUnArchiver

保存数据:                 NSArray*paths=NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,               NSUserDomainMask,YES);

NSString *path = [pathsobjectAtIndex:0];

NSMutableData *data =[[NSMutableData alloc] init];

NSKeyedArchiver*archiver = [[NSKeyedArchiver alloc]

initForWritingWithMutableData:data];

[archiver encodeObject:_filleText.text forKey:@"ty"];

[archiver finishEncoding];

[data writeToFile:[path stringByAppendingPathComponent:@"test"]

atomically:YES];

[archiver release];

[data release];

获取数据:

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

NSString *path = [pathsobjectAtIndex:0];

NSMutableData *data =[[NSMutableData alloc] initWithContentsOfFile:

[path stringByAppendingPathComponent:@"test"]];

NSKeyedUnarchiver *unarchiver =[[NSKeyedUnarchiver alloc]

initForReadingWithData:data];

NSObject*ret = [[unarchiverdecodeObjectForKey:@"ty"] retain];

[unarchiver finishDecoding];

[unarchiver release];

[data release];

也可以写成这样只不过前一种进行了序列化:

保存:

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

NSString *path = [pathsobjectAtIndex:0];

[NSKeyedArchiver archiveRootObject:_filleText.text toFile:[pathstringByAppendingPathComponent:@"test"]];

获取:

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

NSString *path = [pathsobjectAtIndex:0];

NSString* str=[NSKeyedUnarchiver unarchiveObjectWithFile:[pathstringByAppendingPathComponent:@"test"]];

2.保存到plist文件中

分为两种一种是保存在系统自带的plist中,另一种是保存在自已创建的plist文件中

保存到系统自带的plist

保存:

[[NSUserDefaults standardUserDefaults] setObject:_filleText.textforKey:@"save"];

[[NSUserDefaults standardUserDefaults]synchronize];

获取数据:

NSString*str=[[NSUserDefaults standardUserDefaults] objectForKey:@"save"];

保存到自已创的plist中

保存:

NSMutableDictionary* dict=[NSMutableDictionarydictionaryWithObjectsAndKeys:@"chen",@"sex",@"liang",@"name",nil];

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

NSString *docPath = [pathsobjectAtIndex:0];

NSString *myFile = [docPath stringByAppendingPathComponent:@"user.plist"];

[dict writeToFile:myFile atomically:YES];

获取数据:

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

NSString *docPath = [paths objectAtIndex:0];

NSString *myFile = [docPath stringByAppendingPathComponent:@"user.plist"];

NSDictionary* dic = [NSDictionary dictionaryWithContentsOfFile:myFile];

不过我写着写着,觉得第一种和第二种都差不多,基本上都可以归类为保存数据库到文件中,不同的就是保存到plist中可以打开看到里面的数据,第一种看不到,所以更安全些。

3.保存数据到数据库里,一般分为两种一种是ios自带的数据库coredata,另一种是sqllite,我想说的是因为sqllite好多和c关联,如果对c不是很熟悉的话,建议用FMDataBase这个第三方库,它是对sqllite的封装,很好用,对于数据库这块下次再写

有什么问题请大家多指教

最新文章

  1. entityframework学习笔记--006-表拆分与实体拆分
  2. Docker中部署Kubernetes
  3. 使用jOrgChart插件实现组织架构图的展示
  4. 2795: [Poi2012]A Horrible Poem
  5. java代码调用oracle存储过程
  6. javaWeb 在jsp中 使用自定义标签输出访问者IP
  7. Python中通过cx_Oracle访问数据库遇到的问题总结
  8. poj 1698 Alice's Chance 最大流
  9. 在Mac OS X中使用VIM开发STM32(2)
  10. (转)发现两个有用的C函数_alloca()、_msize()
  11. ios常用的框架(源自知乎上的回答)
  12. beanutils获取带参数get方法
  13. ssh: scp命令
  14. php5.6之后的版本使用curl以@+文件名的方式上传文件无效的解决版本
  15. Elixir游戏服设计二
  16. C#备份一个文件到指定的文件夹里面
  17. CompletableFuture CompletableFuture.supplyAsync 异常处理
  18. LOJ.6066.[2017山东一轮集训Day3]第二题(树哈希 二分)
  19. 通过Xtrabackup实现MySQL实例的全库备份与按需单库恢复
  20. CF1107

热门文章

  1. 阿里云ECS linux通过iptables 配置SNAT代理网关,实现局域网上网
  2. [Android] android:visibility属性应用
  3. 为InfiniBand而哭泣
  4. ajax乱码解决总结
  5. 关于winform中子窗体最大化的问题
  6. EXTJS4自学手册——简单图形(circle,rect,text,path)
  7. 理解shell中的atime,mtime,ctime
  8. windows lua 多线程 线程同步
  9. 转 spring官方文档中文版
  10. silverlight RadGridView总结三(转载)