友情链接的网站图片,北京cos网站,编辑app用什么软件,多渠道营销平台与crm模型与字典 1. 用模型取代字典的好处 使用字典的坏处 编译器没有自动提醒的功能,需要手敲key如果写错了编译器也不会报错2. 模型概念 概念 专门用来存放数据的对象特点 一般继承自NSObject在.h文件中声明一些用来存放数据的属性注释 //单行注释/ /多行注释/* /文档注释,调用属性…模型与字典 1. 用模型取代字典的好处 使用字典的坏处 编译器没有自动提醒的功能,需要手敲key如果写错了编译器也不会报错2. 模型概念 概念 专门用来存放数据的对象特点 一般继承自NSObject在.h文件中声明一些用来存放数据的属性注释 //单行注释/ /多行注释/* /文档注释,调用属性时会显示出来文档注释使用模型的好处 模型设置数据和取出数据都是通过它的属性,属性名如果写错了,编译器会马上报错,因此,保证了数据的正确性使用模型访问属性的时候,编译器会提供一系列的提示,提高编码效率3. 九空格 创建步骤 商品 懒加载创建一个可变数组获取plist的全路径获取plist中的字典数据将字典数组转换成模型数组将模型数组添加到模型数组中添加 总列数获取当前商品的索引设置商品的宽度和高度设置商品的位置创建一个父控件将父控件添加到大的View中添加一个图片添加文字设置数据设置按钮的状态删除 设置按钮的状态[self.shopsView.subviews.lastObject removeFromSuperview];//删除最后一个元素4. property的使用策略 assign 基本数据类型,枚举,结构体等非OC对象类型weak OC对象类型(比如NSArray,NSDate,NSNumber,模型类)一般使用在UI控件上strong OC对象类型(比如NSArray,NSDate,NSNumber,模型类)一个对象只要有强引用引用着,就不会被销毁copy 一般用在NSString / block上5. 通过纯代码创建自定义控件 继承自系统自带的控件,写一个属于自己的控件目的:封装控件内部的细节步骤 新建一个继承UIView的类在initWithFrame方法中添加子控件 init内部会自动调用initWithFrame方法因此应该重写initWithFrame方法在layoutSubViews(子控件布局)中设置子控件的frame 当空间的尺寸发生改变时就会调用layoutSubViews一定要先调用[super layoutSubViews];提供一个模型属性,重写模型属性的set方法 在set方法中取出模型属性,给对应的子控件赋值6. 通过Xib自定义控件 步骤 新建一个继承UIView的类新建一个xib文件(文件名最好跟控件类名一样) 添加子控件设置子控件的属性修改最外面的控件class为控件的类名将子控件进行连线提供模型属性,重写模型的set方法 在set方法中给子控件设置数据 xib文件编译成功后就是nib文件 加载方式 方法1 如果bundle mainbundle的参数是nil,默认去mainbundle中找
NSArray *views [[NSBundle mainBundle] loadNibNamed:xib文件名 owner:nil option:nil]; 方法2 UINib*nib [UINib nibWithNibName:xib文件名 bundle:nil];
NSArray *views [nib instantiateWithOwner:nil option:nil]; 步骤 新建自定义控件类新建Xib文件修改xib中view的类名(只能修改成同类型的类)封装xib的加载过程拖线增加模型属性,在模型属性的set方法中设置数据到子控件上xib和storyboard对比 共同点 都用来描述软件界面都用Interface Builder工具来编辑本质都是转换成代码去创建控件不同点 Xib是轻量级的用来描述局部的UI界面 S toryboard是重量级的用来描述整个软件的多个界面并且能展示多个界面之间的跳转关系6. 知识点 如果这个控件不是通过xib\storyboard创建,初始化时会调用initWithFrame:(CGRect)frame;如果是通过xib\storyboard创建,初始化时会调用initWithCoder:(NSCoder *)aDecoder;如果是通过xib\storyboard创建,初始化完毕后会调用awarkFromNibXib与storyboard对比7. 类前缀 NS -- Next StepUI -- User InterfaceAV -- Audio Playerplist文件 一般可以使用属性列表文件存储NSArray或者NSDictionary之类的数据这种“属性列表文件”的扩展名是plist因此也称为“plist文件”1.解析Plist文件 下来通过代码来解析Plist文件中的数据 获得Plist文件的全路径 NSBundle *bundle [NSBundle mainBundle];
NSString *path [bundle pathForResource:shops ofType:plist]; 加载plist文件 objc _shops [NSArray arrayWithContentsOfFile:path]; 2.使用注意 plist的文件名不能叫做“info”、“Info”之类的 添加plist等文件资源的时候一定要勾选Destination:copy items if needed/Added folders:Create groups/Add to targets:非test项目 转载于:https://www.cnblogs.com/HMJ-29/p/4758657.html