前文
主要记录制作通讯录过程的属性代码补充
正文
让文本框有内容后执行操作
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 但可数组 且加动画效果