iOS复习记录日记11-总体内容补充,文本框事件,segue,hud,数据存储[2020]

前文

主要记录制作通讯录过程的属性代码补充

正文

让文本框有内容后执行操作
1.实现文本框的代理UITExtFieldDelegate
-(BOOL)textFieldShouwldBeginEditing //是否允许文本框编辑
但是我们发现文本框的代理并不能做到这件事
2.实现文本框的事件,利用枚举
UIControlEventEditingChanged //文本框内容一旦改变

Segue的补充
自动型:从控件拖到控制器
点击控件后就会执行绑定的代码跳转到对应的控制器
手动型:从控制器拖到控制器
如果需要满足一定条件才能跳转,需要用手动型
1.storyboard中的线点击后设定identifier
2.self performSegueWithIdentifier:@“id”,sender: 执行后就会根据id寻找到segue进行跳转
如果需要延时效果dispatch_after函数即可

MB/SVProgressHUD加载框
对于第三方框架可以参考搜索内容,常用图标如下:
[MBProgressHUD ShowMessage@“xx”];//默认为菊花图标
[MBProgressHUD ShowSuccess@“xx”];//成功为对号图标
[MBProgressHUD ShowError@“xx”];//错误图标
[MBProgressHUD hideHUD];//隐藏
[SVProgresHUD showWithStatus:@“xx”]//默认图标 样式扁平
[SVProgresHUD showErrorWithStatus:@“xx”]//错误图标 样式扁平
[SVProgresHUD dismiss]//隐藏
SVP遮罩单例参数masktype:枚举 //主要弹框后不让点击
github.com/code4app.com里面可以参考部分框架

UIbarButtonItem有参构造Style枚举区别
Plain:字体较细
Done:字体比较粗 [一般取消/完成操作的时候]

类1 isKindOfClass:[类名 class] 可用来判断是否是此类
self.tableview indexpathforselectedrow 可获得目前选中的indexpath
self.tableview setSeparatorInset:设置分割线的边距长度
becomeFirstresponder 让某个uiview成为第一响应者,键盘出来了

数据存储

应用沙盒结构
Documents(持久化数据,游戏存档等,iTunes会备份)
Library
-Caches(持久化数据,但是不重要的缓存,视频文件,ITunes不备份)
-Preferences(对于软件的个性设置,ITunes会备份)
tmp(临时数据,使用完毕后清除,系统也可能会随时清理.)
获得NShomeDirectory() 可获得沙盒根目录

plist存储
NSString *homePath = NSHomeDirectory();//获得沙盒根目录
NSString docPath = [homePath stringByAppendingString:@"/Documents"]’;
NSString docPath = [homePath stringByAppendingPathComponent:@“Documents”];
NSString doctpath =NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,
NSUserDomainMask,YES)[0];
//NSDocumentDirectory 搜索Documents文件夹枚举
//NSUserDomainMask 在用户的沙盒搜索
//YES 是否展开路径 就是绝对路径之类的
//返回数组,毕竟可能重名.
两种的拼接出Documents的路径地址. 采用第三种
plist存储只能存入array或dict. 调用自身的 writetofile 方法即可.

偏好存储
ud = NSUserDefaults standardUserDefaults//通过单例获得对象
ud setObject@“value” forKey:@“key” 存储object
ud setBool:YES forKey:@“isOn”
注意 它不是立即存储的 要调用[defaults synchornize]才可以
ub objectForKey:@“xxx” 通过key读取object

归解档
归档
NSTemporaryDirectory()//可以直接获得tmp的目录
NSkeyedArchiver archiveRootObject:存储对象 toFile:路径 //存储对象
存读对象必须遵守协议:NSCoding
实现方法:-(void)encodeWithCoder:(NSCoder *)coder; //归档属性设置
coder encodeObject:_name forked:@“name” //存储的对象内容和key名 object
coder encodeInt:_age forked:@“age” //存储的对象内容和key名 int

解档
NSkeyedUnarchiver unarchiveObjectWithFile:路径 //返回对象
存读对象必须遵守协议:NSCoding
实现方法:-(instancetype)initWithCoder:(NSCoder *)aDecoder; //解档协议
先super init
aDecoder decodeObjectForKey:@“name” ,通过存入的key,得到这个对象 之后赋值就行
aDecoder decodeIntForKey:@“age” , 这个是得到int的

tableview进入编辑模式的时候调用(cell右滑的时候 出现删除按钮)
重写这个方法 commitEditingStyle
array removeObjectAtIndex 数组根据下标删除
table deleteRowsAtIndexPaths 但可数组 且加动画效果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值