文档章节

0515学习记录

s
 sethjiang
发布于 2016/05/15 23:07
字数 828
阅读 2
收藏 0

数据存储的方式  

 

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 : 原子性 , 保证数据的完成性

[array writeToFile:filePath atomically:YES];

 

 

 

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

 

[NSUserDefaults standardUserDefaults]

 

 

// 存数据

// 保存用户名

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

 

// 保存年龄

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

 

// 是否已婚

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

 

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

[[NSUserDefaults standardUserDefaults] synchronize];

 

 

// 取数据

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

 

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

 

BOOL married = [[NSUserDefaults standardUserDefaults] 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";

 

// 设置item的image

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

 

// 设置imte的被选中的 image

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

 

// 设置通知数量

vc1.tabBarItem.badgeValue = @"10";

 

// 向 tabBarController 添加子控制器

[tabBarController addChildViewController:vc1];

 

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

 

 

 

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

从 a  push 到  b 

 

属性要在 控制器b 中设置

 

// 拿到目标控制器

UIViewController *controller = segue.destinationViewController;

 

// 当push的时候, 隐藏掉 tabBar

controller.hidesBottomBarWhenPushed = YES;

© 著作权归作者所有

共有 人打赏支持
s
粉丝 0
博文 6
码字总数 3400
作品 0
闵行
私信 提问
在武汉的亲们,武汉灰大,保重身体啊,工作时间长了,有木有意思组识一下出去,散散心?

武汉,灰大, 公交难挤,几翻想去 黄鹤楼,被武汉同事制止,淡定的说: ”我们武汉本地人都不去的,没有什么看头,耗钱”,于是作罢。。![在此输入图片描述][1] 没有大家共同喜欢的活动? 大...

hlevel
2013/05/15
456
13
记录一下iphone7s维修过程

原本以为像盐城这样的三线城市没有苹果维修点呢(我说的是经过苹果官方授权的维修点,不是路边上杂牌的手机维修点)。没想到在苹果维修点查询还真有,虽然不是直营店,但是已经欣喜若狂了。 ...

thebeauty2016
05/29
0
0
又拍云Prism CDN 超低价 低延时 超强兼容的P2P-CDN

又拍云Prism CDN 超低价 低延时 超强兼容的P2P-CDN 2018-05-15 10:26编辑: 枣泥布丁分类:业界动态来源:https://www.upyun.com/products CDN又拍云 招聘信息: C++工程师 Cocos2d-x游戏客户...

枣泥布丁
05/15
0
0
Flash 插件又被曝出新漏洞,让攻击者可以控制 Mac

Adobe 今天宣布,新发现了 Flash 插件中的安全漏洞可以允许攻击者远程控制 Mac、PC 和 Linux 电脑。Adobe 建议用户尽快升级系统中的 Flash 插件。这次的漏洞影响 Mac 平台上13.0.0.201或更早...

oschina
2014/04/29
2.8K
27
HTTP断点续传的基本原理

HTTP断点续传的基本原理 断点续传是我们现在经常接触的概念,那么HTTP协议是如何支持断点续传的呢。我们先从一个例子来看看。 下面是一个断点续传的例子:(使用Net Vampire得到) I 01-7-1...

bengozhong
2016/08/31
3
0

没有更多内容

加载失败,请刷新页面

加载更多

NEO 节点介绍

全节点(full nodes)是存储 NEO 区块链全部数据的节点,通过 P2P 的方式与区块链网络连接,在区块链网络中,所有的全节点都是平等的,既充当客户端又充当服务器。 NEO 有两个全节点程序: ...

NEO-FANS
12分钟前
0
0
内网穿透大杀器--EarthWorm

0x00 前言 如果感觉本文对你有帮助,请在文章末尾点个赞,谢谢表哥们支持! 当你在内网渗透,并且拿下一台机器的权限时,你是不是觉得已经算是一次完整的渗透了? 不来一次内网漫游,渗透是不...

刀剑如梦
17分钟前
2
0
PiggyMetrics分布式框架

https://github.com/sqshq/PiggyMetrics

丁建祥
18分钟前
0
0
零距离接触阿里云时序时空数据库TSDB

概述 最近,Amazon新推出了完全托管的时间序列数据库Timestream,可见,各大厂商对未来时间序列数据库的重视与日俱增。 阿里云TSDB是阿里巴巴集团数据库事业部研发的一款高性能分布式时序时空...

阿里云云栖社区
27分钟前
4
0
OkHttpClient封装

import java.io.BufferedReader; import java.io.InputStream; import java.io.InputStreamReader; import java.util.Map; import java.util.TreeMap; import java.util.Map.Entry; import o......

尘叙缘
29分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部