文档章节

0515学习记录

s
 sethjiang
发布于 2016/05/15 23:07
字数 828
阅读 2
收藏 0
点赞 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
HTTP断点续传的基本原理

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

bengozhong
2016/08/31
3
0
QEMU 1: 使用QEMU创建虚拟机

QEMU是一款开源的模拟器及虚拟机监管器(Virtual Machine Monitor, VMM)。QEMU主要提供两种功能给用户使用。一是作为用户态模拟器,利用动态代码翻译机制来执行不同于主机架构的代码。二是作为...

宅蓝三木
2014/05/15
0
21
Excel 2010基础应用技巧大全

在Excel基础大全里面,我全部透彻讲解Excel所有功能技术特点和应用方法,从Excel基础操作开始,逐步讲解公式与函数、格式设置、数据高级分析、模拟分析、数据透视表、图表、后期打印以及宏与V...

么么哒lalala
2016/01/05
52
0
Android 开发(一)项目概况

开始写博客,自己是边学习边做开发,将自己开发的过程记录下来,能够对学习的知识进行梳理,也可以对学习做个总结。 首先是对项目的介绍: 做一个功能全面的软件,希望能将自己学习到的知识都...

jysong
2013/09/07
0
0
微服务模块划分及依赖调用问题

在使用微服务框架的时候通常是把各个大的功能做成独立的模块,比如一个学习+考试的系统,在设计的时候分成了用户服务、学习服务、考试服务,但是在学习服务或者考试服务中有需要查询学习记录...

_源代码_
2017/01/08
671
1

没有更多内容

加载失败,请刷新页面

加载更多

下一页

python3.6用的外库遇到的问题

要用到wmi库 pip install wmi 装后不能用还要安装pywin32库。 要用到crypto加密模块安装pip instal pycrypto装后不能用。要安装pycryptodome。...

oisan_
5分钟前
0
0
select, poll, epoll I/O复用介绍

什么是I/O复用? 内核监视多个文件描述符(I/O文件句柄),一旦某个描述符就绪(一般是读就绪或者写就绪),能够通知应用程序进行相应的读写操作。 I/O多路复用又被称为“事件驱动”(比如读写事...

xiaoxlm
5分钟前
0
0
【Spring 系列 给IOC容器添加组件的几种方式总结】

给Spring 注册Bean的几种方式总结。其中使用@Import注解是Spring Boot 完成自动配置的一个核心注解。 1、Spring 中给IOC容器添加组件的几种方式 在Spring的配置文件中,配置Bean(基于XML方式...

HansonReal
6分钟前
2
0
bootstrapTable语言包设置

###方法一引入不同的语言包 <script src="bootstrap-table-zh-CN.js"></script> ###方法二引入全语言包 <script src="bootstrap-table-locale-all.min.js"></script>//然后在初始化前设计默......

momo1987
7分钟前
0
0
Saltstack 常用命令

1、拷贝文件到客户端 # salt 'slaver.test.com' cp.get_file salt://apache.sls /tmp/cp.txt 2、拷贝目录到客户端 # salt 'slaver.test.com' cp.get_dir salt://test /tmp 3、显示存活的客户......

硅谷课堂
8分钟前
0
0
致初学者-如何学好Python这门编程语言?[图]

致初学者-如何学好Python这门编程语言?[图]: 对于很多Python3初学者,往往会面临以下问题:Python2和Python3我该学习哪一个?是否要安装Linux系统学习Python?Python3有各种版本我该安装哪...

原创小博客
11分钟前
1
0
E31---setopt=protected_multilib=false

今天在云服务器上装nginx,需要先安装一些依赖库比如zlib, ,但是安装zlib时候报错。 yum install -y zlib zlib-devel 1 (-y 指的是如果需要选yes no的自动y)下面是报错 Protected multil...

侠客行之石头
15分钟前
0
0
HTTP常见面试题

Http与Https的区别: HTTP 的URL 以http:// 开头,而HTTPS 的URL 以https:// 开头 HTTP 是不安全的,而 HTTPS 是安全的 HTTP 标准端口是80 ,而 HTTPS 的标准端口是443 在OSI 网络模型中,H...

JK_OPERA
16分钟前
0
0
python爬取站长素材网页图片保存到ppt中

网站地址:http://sc.chinaz.com/tupian/index.html 直接上代码: import requestsfrom bs4 import BeautifulSoupfrom pptx import Presentationfrom pptx.util import Inchesimpor......

你为什么不吃药
18分钟前
1
0
Ubuntu 18.04 swap空间的修改

一、准备工作 执行“sudo swapon -s”命令,查看是否已经存在swap file 二、修改swap file # 如果第一步存在swapfile则需要先禁用sudo swapoff /swapfile# 修改swap 空间的大小为2Gs...

Iceberg_XTY
21分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部