ios记录-数据存储

来源:互联网 发布:ionic vue.js 编辑:程序博客网 时间:2024/04/29 16:09

数据存储的方式  

 

Plist

数组

字典

 

字符串 --> plist文件是可以存的,但是不是直接支持,会改变plist文件的 文件格式

 

 

Preference :可以理解为封装的字典

字符串

BOOL 

整数

 

 

归档解档

任何对象都可以直接保存为文件

 

 

沙盒 就是一个文件夹

 

Documnets  -->我们需要操作的目录,备份的时候也会自动备份

 

Library/Caches   -->缓存

 

Library/Preference  -->偏好设置,一般是由系统自动管理

 

tmp   -->随时有可能被删除

 

 

使用plist文件存储数据

1.只支持数组和字典

2.字符串可以用plist文件去存储,但是,会改变plist文件的文件格式

3.自定义对象不能通过plist存储,没有writToFile这个方法

 

获取文件路径

第一种

NSString*path = NSHomeDirectory();//获取沙盒目录

 

//拼接 Documnets文件名

NSString *filePath =[path stringByAppendingString:@"/Documents/aa.plist"];

 

//自动回增加一个

NSString *filePath =[path stringByAppendingPathComponent:@"/Documents/aa.plist"];

 

 

//直接获取 documents路径

/**

第一个参数:要查找的文件夹

第二个参数:要在哪个目录去找

第三个参数:是否要展开路径 YES

*/

NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES)[0];

 

 

//宏定义,直接根据文件名称,拼接文件的绝对路径,

#define kFilePath(fileName)([NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask,YES)[0]stringByAppendingPathComponent:fileName])

 

 

// writeToFile:文件绝对路径

// atomically :原子性 ,保证数据的完成性

[arraywriteToFile:filePath atomically:YES];

 

 

 

用户偏好 ,只适合,比较少量的数据,最好 bool类型

 

[NSUserDefaultsstandardUserDefaults]

 

 

//存数据

//保存用户名

[defaults setObject:@"dd" forKey:@"name"];

 

//保存年龄

[defaults setInteger:18 forKey:@"age"];

 

//是否已婚

[defaults setBool:YES forKey:@"married"];

 

//存储数据完成之后,要做一次数据同步

[[NSUserDefaultsstandardUserDefaults] synchronize];

 

 

//取数据

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

 

NSInteger age =[[NSUserDefaults standardUserDefaults] integerForKey:@"age"];

 

BOOL married = [[NSUserDefaultsstandardUserDefaults] boolForKey:@"married"];

 

 

 

登录界面

 

用户偏好

 

用户名

密码

 

记住密码switch的状态

自动登录switch的状态

 

什么情况下,需要记住用户名和密码

1.记住密码的开关为on的时候

2.在验证用户名和密码成功的地方,将要完成界面跳转之前 记录用户名和密码

 

 

 

在应用程序启动的时候

1.是否记住密码进行判断

返回值YES

1.填充用户名和密码

2.修改记住密码的状态为on

3.登录按钮为可用状态

 

2. 自动登录做判断

YES

1.修改自动登录按钮的状态

2.调用登录按钮的监听方法

 

 

注销逻辑

1.清空textField

2.恢复按钮的状态off

3.禁用登录按钮

4.用户偏好要清空

 

 

 

ListViewController:

什么时候要进行归档

1.添加

2.编辑

3.删除

4.当点击注销的时候,要清空数组,进行归档

 

只要数据发生了变化,就需要进行归档

 

 

UITabBarController

 

//设置控制器vc1 title

//    vc1.tabBarItem.title = @"第一个";

    

vc1.title = @"TryTry";

 

//设置itemimage

vc1.tabBarItem.image =[UIImage imageNamed:@"tabbar_contacts"];

 

//设置imte的被选中的 image

vc1.tabBarItem.selectedImage= [UIImage imageNamed:@"tabbar_contactsHL"];

 

//设置通知数量

vc1.tabBarItem.badgeValue=@"10";

 

// tabBarController添加子控制器

[tabBarControlleraddChildViewController:vc1];

 

tabBarController.viewControllers=@[vc1, vc2,vc3];

 

 

 

如果在进行push的时候,要隐藏 tabBar 

a  push  b 

 

属性要在控制器b中设置

 

//拿到目标控制器

UIViewController*controller = segue.destinationViewController;

 

//push的时候,隐藏掉 tabBar

controller.hidesBottomBarWhenPushed=YES;

0 0