文档章节

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
闵行
记录一下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.7K
27
Kaggle HousePrice : (前15%),(2.实践-特征工程部分-之上古魔法-统计检验)

关键词:回归评估,整体检验,显著性,多重共线性,奇异矩阵 ftest, ttest, significance level, R2, multi_col linearity,singular matrix Kaggle, 统计,机器学习,python 预计阅读时间: ...

王勇
2017/12/11
0
0
YCKIT V2013 正式版发布

YCKIT V2013 更新情况: [修复]后台水印图片打开地址错误 [优化]评论翻页时的效果 [优化]前台采用了响应式结构 [优化]前台投稿采用浮动窗口方式增加了栏目选项 [优化]后台UI界面细节优化 [修...

野草
2013/05/15
758
2

没有更多内容

加载失败,请刷新页面

加载更多

20.27 分发系统介绍~ 20.30 expect脚本传递参数

分发系统介绍分发系统-expect讲解(也就是一个分发的脚本)场景:业务越来越大,网站app,后端,编程语言是php,所以就需要配置lamp或者lnmp,最好还需要吧代码上传到服务器上;但是因...

洗香香
28分钟前
1
0
设计一个百万级的消息推送系统

前言 首先迟到的祝大家中秋快乐。 最近一周多没有更新了。其实我一直想憋一个大招,分享一些大家感兴趣的干货。 鉴于最近我个人的工作内容,于是利用这三天小长假憋了一个出来(其实是玩了两...

crossoverJie
34分钟前
1
0
软件架构:5种你应该知道的模式

Singleton(单例模式)、仓储模式(repository)、工厂模式(factory)、建造者模式(builder)、装饰模式(decorator)……大概每个上课听讲的程序员都不会陌生——软件的设计模式为我们提供...

好雨云帮
46分钟前
2
0
OSChina 周二乱弹 —— 这只是一笔金钱交易

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @小小编辑:推荐歌曲《暮春秋色》- 窦唯 / 译乐队 《暮春秋色》- 窦唯 / 译乐队 手机党少年们想听歌,请使劲儿戳(这里) @我没有抓狂:跨服聊...

小小编辑
58分钟前
617
16
df命令、du命令 、磁盘分区

9月25日任务 4.1 df命令 4.2 du命令 4.3/4.4 磁盘分区 4.1、命令 :df #磁盘空间使用情况 [root@zgxlinux-02 ~]# df 按字节显示 1000Byte=1KB 1000KB=1MB 1000MB=1GB ...

zgxlinux
今天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部