mvvm
来源:互联网 发布:vue.js 时间戳转日期 编辑:程序博客网 时间:2024/05/01 23:01
Model层是少不了的了,我们得有东西充当DTO(数据传输对象),当然,用字典也是可以的,编程么,要灵活一些。Model层是比较薄的一层,如果学过Java的小伙伴的话,对JavaBean应该不陌生吧。
ViewModel层,就是View和Model层的粘合剂,他是一个放置用户输入验证逻辑,视图显示逻辑,发起网络请求和其他各种各样的代码的极好的地方。说白了,就是把原来ViewController层的业务逻辑和页面逻辑等剥离出来放到ViewModel层。
View层,就是ViewController层,他的任务就是从ViewModel层获取数据,然后显示。
上面对MVVM就先简单的这么一说,好好的理解并应用的话,还得实战。
举一个用Storyboard好处的例子就OK了,给控件添加约束,如果用Storyboard完成那是分分秒的事情,而用代码的添加约束的话是何等的恶心,纯代码写的话会把大量的时间花在写UI上,而且技术含量是比较低的,这个个人认为没什么必要。在团队合作中负责UI开发的小伙伴只需没人负责一个Storyboard,各开发各的,用SVN提交时把下面的勾(如下图)去掉即可,这样用Storyboard是没有问题的。然后再用代码进行整合就OK了。如果你在你的工程中加入了新的资源文件的话,用XCode自带的SVN提交的话需要吧Project Setting文件一并提交。
.h viewmodel
//// ViewModelClass.h// MVVMTest//// Created by 李泽鲁 on 15/1/8.// Copyright (c) 2015年 李泽鲁. All rights reserved.////Kicking off network or database requests//Determining when information should be hidden or shown//Date and number formatting//Localization#import <Foundation/Foundation.h>@interface ViewModelClass : NSObject@property (strong, nonatomic) ReturnValueBlock returnBlock;@property (strong, nonatomic) ErrorCodeBlock errorBlock;@property (strong, nonatomic) FailureBlock failureBlock;//获取网络的链接状态-(void) netWorkStateWithNetConnectBlock: (NetWorkBlock) netConnectBlock WithURlStr: (NSString *) strURl;// 传入交互的Block块-(void) setBlockWithReturnBlock: (ReturnValueBlock) returnBlock WithErrorBlock: (ErrorCodeBlock) errorBlock WithFailureBlock: (FailureBlock) failureBlock;@end
.m
//// ViewModelClass.m// MVVMTest//// Created by 李泽鲁 on 15/1/8.// Copyright (c) 2015年 李泽鲁. All rights reserved.//#import "ViewModelClass.h"@implementation ViewModelClass#pragma 获取网络可到达状态-(void) netWorkStateWithNetConnectBlock: (NetWorkBlock) netConnectBlock WithURlStr: (NSString *) strURl;{ BOOL netState = [NetRequestClass netWorkReachabilityWithURLString:strURl]; netConnectBlock(netState);}#pragma 接收穿过来的block-(void) setBlockWithReturnBlock: (ReturnValueBlock) returnBlock WithErrorBlock: (ErrorCodeBlock) errorBlock WithFailureBlock: (FailureBlock) failureBlock{ _returnBlock = returnBlock; _errorBlock = errorBlock; _failureBlock = failureBlock;}@end
0 0
- MVVM
- MVVM
- MVVM
- MVVM
- MVVM
- MVVM
- MVVM
- MVVM
- mvvm
- MVVM
- MVVM
- mvvm
- MVVM
- MVVM
- MVVM
- MVVM
- MVVM
- MVVM
- MultiRow
- POJ 1661 The Suspects
- RelayCommand命令 初识
- 利用UIScrollView实现展示图片的无限滚动及自动滚动
- 读写W25QXX死机问题
- mvvm
- IOS开发笔记19-OC特有语法
- hibernate 多表填充
- RabbitMQ客户端参数性能测试(1)
- 插件的用法和实现
- 递归和动态规划
- 险象逃生 ytu 师创杯problem 4
- Java三元运算符——类型必须一致
- 深入理解javascript之IIFE