学习IOS开发UI篇--MVC设计界面及数据的模型转换
2014-05-22 21:23
351 查看
1.字典转模型
========================================
1.1字典转模型的好处:
1> 降低代码的耦合度
2> 所有字典转模型部分的代码统一集中在一处处理,降低代码出错的几率
3> 在程序中直接使用模型的属性操作,提高编码效率
模型应该提供一个可以传入字典参数的构造方法
- (instancetype)initWithDict:(NSDictionary *)dict;
+ (instancetype)xxxWithDict:(NSDictionary *)dict;
1.2instancetype & id
1> instancetype在类型表示上,跟id一样,可以表示任何对象类型
2> instancetype只能用在返回值类型上,不能像id一样用在参数类型上
3> instancetype比id多一个好处:编译器会检测instancetype的真实类型
1.3 在模型中添加readonly属性
// 定义属性时,会生成getter&setter方法,还会生成一个带下划线的成员变量
// 而如果是readonly属性,则只会生成getter方法,同时没有成员变量
@property (nonatomic, strong, readonly) UIImage *image;
@interface LFAppInfo()
{
UIImage *_imageABC;
}
- (UIImage *)image
{
if (!_imageABC) {
_imageABC = [UIImage imageNamed:self.icon];
}
return _imageABC;
}
在模型中合理地使用只读属性,可以进一步降低代码的耦合度。
1.4使用数据模型的好处:
*** 调用方不用关心模型内部的任何处理细节!
1.5数据模型的创建
1>创建类用来保存plsit文件中的数据
2>设置类的属性(要与plist中的名称一一对应,设计KVC)
添加UIimage类的成员变量,设置只读属性,在实现中利用私有类扩展添加_image属性,并添加getter方法.
3>写构造方法和工厂方法
[self setValueForKeysWithDict:dict]; (KVC)
4>添加返回类对象数组的类方法
+ (NSArray *)info;
2. XIB
========================================
Xib文件可以用来描述某一块局部的UI界面
XIB & Storyboard
相同点:
1> 都用来描述软件界面
2> 都用Interface Builder工具来编辑
不同点
1> Xib是轻量级的,用来描述局部的UI界面
2> Storyboard是重量级的,用来描述整个软件的多个界面,并且能展示多个界面之间的跳转关系
3. View的封装思路
========================================
1> 如果一个view内部的子控件比较多,一般会考虑自定义一个view,把它内部子控件的创建屏蔽起来,不让外界关心
2> 外界可以传入对应的模型数据给view,view拿到模型数据后给内部的子控件设置对应的数据
========================================
1.1字典转模型的好处:
1> 降低代码的耦合度
2> 所有字典转模型部分的代码统一集中在一处处理,降低代码出错的几率
3> 在程序中直接使用模型的属性操作,提高编码效率
模型应该提供一个可以传入字典参数的构造方法
- (instancetype)initWithDict:(NSDictionary *)dict;
+ (instancetype)xxxWithDict:(NSDictionary *)dict;
1.2instancetype & id
1> instancetype在类型表示上,跟id一样,可以表示任何对象类型
2> instancetype只能用在返回值类型上,不能像id一样用在参数类型上
3> instancetype比id多一个好处:编译器会检测instancetype的真实类型
1.3 在模型中添加readonly属性
// 定义属性时,会生成getter&setter方法,还会生成一个带下划线的成员变量
// 而如果是readonly属性,则只会生成getter方法,同时没有成员变量
@property (nonatomic, strong, readonly) UIImage *image;
@interface LFAppInfo()
{
UIImage *_imageABC;
}
- (UIImage *)image
{
if (!_imageABC) {
_imageABC = [UIImage imageNamed:self.icon];
}
return _imageABC;
}
在模型中合理地使用只读属性,可以进一步降低代码的耦合度。
1.4使用数据模型的好处:
*** 调用方不用关心模型内部的任何处理细节!
1.5数据模型的创建
1>创建类用来保存plsit文件中的数据
2>设置类的属性(要与plist中的名称一一对应,设计KVC)
添加UIimage类的成员变量,设置只读属性,在实现中利用私有类扩展添加_image属性,并添加getter方法.
3>写构造方法和工厂方法
[self setValueForKeysWithDict:dict]; (KVC)
4>添加返回类对象数组的类方法
+ (NSArray *)info;
2. XIB
========================================
Xib文件可以用来描述某一块局部的UI界面
XIB & Storyboard
相同点:
1> 都用来描述软件界面
2> 都用Interface Builder工具来编辑
不同点
1> Xib是轻量级的,用来描述局部的UI界面
2> Storyboard是重量级的,用来描述整个软件的多个界面,并且能展示多个界面之间的跳转关系
3. View的封装思路
========================================
1> 如果一个view内部的子控件比较多,一般会考虑自定义一个view,把它内部子控件的创建屏蔽起来,不让外界关心
2> 外界可以传入对应的模型数据给view,view拿到模型数据后给内部的子控件设置对应的数据
相关文章推荐
- 【iOS开发-60】案例学习:多组数据的tableView设置、增加右侧组索引、多层数据模型设置以及valueForKeyPath
- iOS开发学习专题-基础知识(四) NSNumber容器 NSData数据 NSData转换的详细使用方式
- 学习IOS开发UI篇--手码搭建UI界面和懒加载设计
- 【iOS开发-60】案例学习:多组数据的tableView设置、添加右側组索引、多层数据模型设置以及valueForKeyPath
- 学习IOS开发UI篇--数据存储
- IOS学习之路二十(程序json转换数据的中文字符问题解决)
- IOS学习九:ios开发之数据的持久化存储机制
- 【无限互联】iOS开发视频教程—2.4iPhone开发之基本数据类型转换
- 30个真棒的(免费iPhone,iPad IOS)的GUI 界面设计元素模板 做iphone开发的福音
- 2011斯坦福大学iOS应用开发教程学习笔记(第一课)MVC.and.Introduction.to.Objective-C
- 【零基础学习iOS开发】【02-C语言】07-基本数据类型
- IOS学习之路二十(程序json转换数据的中文字符问题解决)
- IOS学习之ios开发之数据的持久化存储机制
- 很好的IOS开发界面元素设计网站
- iOS开发设计模式-MVC
- [开发总结]系统架构及数据模型----AutoDesk文件格式转换篇(五)
- ASP.NET MVC 5 学习教程:通过控制器访问模型的数据
- IOS开发基础教程学习笔记4 在storyboard的场景之间传递数据
- iOS开发之MVC模型
- HBH_IOS开发之界面转换