UI第十八讲.初级数据持久化

一.什么是沙盒机制

获取沙盒路径的方法:

1     //第一种 获取沙盒路径的方法
2     NSString *pathStr = NSUserName();
3     NSString *homePathStr = NSHomeDirectoryForUser(pathStr);
4     NSLog(@"%@",homePathStr);
5    //第二种 获取沙盒路径的方法
6     NSString *homePathStr1 = NSHomeDirectory();
7     NSLog(@"%@",homePathStr1);

获取document文件夹路径的方法

1    //获取document文件夹路径的方法 *********(经常用)
2     NSString *documentStr = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)[0];
3     NSLog(@"%@",documentStr);

//数据本地化
//1.NSUserDefaults
//版本号,是否首次登陆,登陆后的用户名和用户信息
//2.直接写入本地(可以写入简单对象)
//3.归解档(主要作用于自定义对象model)
//4.SQLite -->基于c语言的数据库
//5.CoreData (主推方式)

//把程序有关的数据和文件存储的地方就是沙盒  一个应用程序只有一个沙盒文件夹
//应用程序是不能跨沙盒读取文件的 (都有一个Bundle ID)

//热更新  在线更新安装

//x86_64  -l -f 错误原因分析:
//1.路径
//2.命名冲突

//library为半永久的,不会被备份

二.简单对象写入文件

简单写入文件的四步
     1>.写的东西 数组,字典,data date
     2>.写到哪里
     3>.写进去
     4>.写完拿出来使用

NSString类型简单写入文件的方法

 1   /*
 2      简单写入文件的四步
 3      1?? 写的东西 数组,字典,data date
 4      2?? 写到哪里
 5      3?? 写进去
 6      4?? 写完拿出来使用
 7      */
 8     //第一种简单对象写入本地的方法
 9     //1?? 写的东西 数组,字典,data date
10     NSString *str = @"张三";
11     //创建写入的文件 后面直接拼接文件  如果没有拼接会自动创建
12     //2?? 写到哪里
13     NSString *documentStr = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)[0];
14     NSString *path  = [documentStr stringByAppendingString:@"/张三.avi"];
15     // 3?? 写入文件
16     [str writeToFile:path atomically:YES encoding:NSUTF8StringEncoding error:nil];
17     NSLog(@"%@",path);
18     //4?? 写完拿出来使用
19     NSString *str1 = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil];
20     NSLog(@"%@",str1);

NSData类型简单写入文件的方法:

 1    //将网络图片地址转化为URL类型
 2     NSString *str = @"http://img.fs0757.com/news/2015/0901//2015090110400752.jpg";
 3
 4     NSURL *url = [NSURL URLWithString:str];
 5     //1?? 写的东西 数组,字典,data date
 6     NSData *data = [NSData dataWithContentsOfURL:url];
 7     //2?? 写到哪里
 8     NSString *documentStr = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)[0];
 9     NSString *path = [documentStr stringByAppendingString:@"/dsa.png"];
10     // 3?? 写入文件
11     [data writeToFile:path atomically:YES];
12
13     UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(100, 100,100 ,100)];
14     //4?? 写完拿出来使用
15     NSData *data1 = [NSData dataWithContentsOfFile:path];
16     //将data类型转化为image类型
17     UIImage *image1 = [UIImage imageWithData:data1];
18     //此步是将转化过来的image 赋给imageView上
19     imageView.image = image1;
20
21     [self.view addSubview:imageView];
22
23     NSLog(@"%@",path);
24     

//*直接写入本地时,第一次写入后,如果再次写入时会覆盖之前的操作
    //*一次只能写入一条数据
    //*如果不覆盖,就要先读出来,然后再写进去
    //*如果能直接写入本地的 一定要遵循的NSCoding协议

三.复杂对象写入文件

四.NSUserDefaults写入读取文件

时间: 2024-12-15 19:51:16

UI第十八讲.初级数据持久化的相关文章

Scala 第十八讲 高阶函数 从大数据菜鸟走上大师的历程

来自原大数据王家林视频视频 23讲 var triple = (x : Double) => 3 * x //> triple  : Double => Double =     Array(3.14, 1.42, 2.0).map((x : Double) => 3 * x)                                                   //> res0: Array[Double] = Array(9.42, 4.26, 6.0)  

UI第二十二讲.多线程编程

一.多线程概述 1.程序:由源代码生成的可执行程序.(例如:QQ.app) 2.进程:一个正在运行的程序可以看做一个进程.(例如:正在运行的一个QQ就是一个进程) ,进程具有独立运行所需要的全部资源. 每个进程之间是独立的,每个进程均运行在其专用且受保护的内存空间内 比如同时打开QQ.Xcode,系统就会分别启动2个进程 通过“活动监视器”可以查看Mac系统中所开启的进程 3.线程:程序中独立运行的代码段.(例如QQ中接收消息的代码) 1>.一个进程是由一个或多个线程组成.进程只负责资源的调度和

第二十八讲:Android之Animation(三)

我们不得不饮食.睡眠.游玩.恋爱,也就是说,我们不得不接触生活中最甜蜜的事情,不过我们必须不屈服于这些事物.-- 居里夫人 本讲内容:补间动画 Tween Animation 前面我们只学习了实现单个动画效果,本讲将同时实现多个动画效果: 我们通过一个例子感受一下,代码的讲解都写在注释里了 下面是res/layout/activity_main.xml 布局文件: <LinearLayout xmlns:android="http://schemas.android.com/apk/res

Unity3D教程宝典之Shader篇:第十八讲贴图与光影

转载自风宇冲Unity3D教程学院 从本讲开始讲一些特效贴图.这些贴图大多数是在不采用高精度模型的情况下,以较小的代价获得最好的画面效果.而涉及的主要是与光有关的运算. (1) Bump Mapping 凹凸贴图 (2) Normal Mapping 法线贴图 (3) Parallax Mapping 视差贴图 (4) Displacement Mapping 位移贴图 (5) ReliefMapping 浮雕纹理贴图 (6) ParallaxOcclusionMapping 视差阻塞贴图 (7

第七十八讲:用户界面View之PopupWindow

命运掌握在自己手中.要么你驾驭生命,要么生命驾驭你,你的心态决定你是坐骑还是骑手. 本讲内容:PopupWindow 弹出窗口控件 一.PopupWindow 弹出窗口控件认识 1.Android的对话框有两种:PopupWindow和AlertDialog. 2.它们的不同点在于: AlertDialog的位置固定,而PopupWindow的位置可以随意 AlertDialog是非阻塞线程的,而PopupWindow是阻塞线程的 3.PopupWindow的位置按照有无偏移分,可以分为偏移和无

第十八讲===&gt;购物车实战

<!DOCTYPE html> <html> <head> <title>购物车</title> <style type="text/css"> span{cursor: pointer;} </style> </head> <body> <div id="app"> <div> 课程:<input type="text

UI第十九讲:数据库

一.数据库管理系统 二.SQL语句 三.iOS的数据库技术的实现

第十八讲:中介者模式

类之间的交互行为被统一放在Mediator的对象中. 古代的媒婆,婚姻中介.

2018大学生创新创业降龙十八讲答案超星尔雅

1.11[单选题]以下对于创业的认识错误的是( b ). 创业的过程本身就是一个冒险的过程B.合格的创业者应对所有事物抱有好奇心C.合格的创业者喜欢新鲜事物D.只要创业意识强就一定能创业成功 ******************************** q+q+:64315052 ********************************* 2[单选题]当别人都在抱怨世界对自己不公时他却在思考自己应如何把握自己前途,而不是把希望放在别人身上或运气上.这种意识称之为( a ). A.独立