2020-03

作者: 一只不断前进的小蜗牛 | 来源:发表于2020-03-30 16:38 被阅读0次

3月接近尾声,我们继续深入了解ViewModel

iOS 原生开发工具集并不支持数据绑定,因此我们只能使用第三方库

使用工具 reactCocoa  或者  STCViewModel

都是用于更好的绑定值,监听数据的更新,以显示最新View的第三方库

本文使用的是STCViewModel

1.自定义STCViewModel的子类

2.定义属性(根据需要)

@property (assign, nonatomic, readonly) SEL refreshDataCommand;

@property (nonatomic, strong, readonly) NSArray<Job *> *jobArray;

3.覆盖初始化方法

initWithDelegate 

初始化SEL属性  _refreshBannerCommand=@selector(refreshBannerCommand:);

4.实现定义的SEL

- (void)refreshDataCommand:(id)target {

请求数据,获取结果数组

[self reactActionWithTarget:target];      回调协议方法:reactActionWithViewModel:target

}

1.1 进入 View  (将View与ViewModel进行绑定)

1.初始化viewModel

self.refreshTarget    =STCGetPropertyName(refreshTarget);           

[self.viewModel performSelector:self.viewModel.refreshPersonalSkillsCmd

                         withObject:self.refreshTarget

                         afterDelay:0];         调用ViewModel中已经实现的方法。里面已经实现了网络请求

  [self.viewModel registerDelegate:self.fullTimeDataSource];   

    [self.viewModel bindProperty:STCGetPropertyName(cellDict)

                      withTarget:self.fullTimeDataSource];

2.View成为STCViewModelProtocol的代理

#pragma mark - STCViewModelProtocol

- (void)reactActionWithViewModel:(id)viewModel target:(id)target {

根据viewModel与target,做出响应

}

-(void)updateValue: withViewModel: target: {

}

2. 进入 self.fullTimeDataSource类中

成为STCViewModelProtocol的代理,实现其updateValue: withViewModel: target:方法

这个方法返回了self.viewModel,可用于给cell赋值

相关文章

  • 2020-03

    Q1:什么是防抖和节流?有什么区别?如何实现? 防抖:触发高频事件后n秒内函数只会执行一次,如果n秒内高频事件再次...

  • 2020-03

    3月接近尾声,我们继续深入了解ViewModel iOS 原生开发工具集并不支持数据绑定,因此我们只能使用第三方库...

  • 2020-03一11

    咋天没有写文,用了张复活卡,今天又是没时间写文,直到23点50分才拿起手机想写几句,以防断更。其实断更对我来说也是...

  • 2020-03月总结

    3月还是一整个月都在家办公,只有一个周日去办公室加班了。 因为4月要开始在体态大师的打卡,所以整个3月我都没有锻炼...

  • 2020-03 复盘

    2020.04.06 晴 这是在老家的最后一个月,生活变得很规律,找回在北京时的生活节奏。 读书 这一个月,我看...

  • 2020-03月检视

    没有反思的人生,不值得过---苏格拉底。 我是一切的根源,所有的发生都是来成就我的。 【3月计划】完成情况 1、(...

  • 2020-03 github hosts

    前情提要 最近由于有一个傻逼攻击github,我们的直连不能用了.(虽然本来就非常慢)他是攻击的DNS,也就是局域...

  • 2020-03计划与执行

    1,廖雪峰java教程-约180节(一个早上读一节,预计2020-09完成) https://www.liaoxu...

  • 2020-03上旬简思

    学习 行测1.言语理解 逻辑填空:两重一搭加感情两重:词意侧重和轻重一搭:搭配感情:感情色彩 中心理解:三词一脉加...

  • 腾讯(视频面试2020-03)

    1、你们现在部门内有单元测试或者CodeReview的习惯么?2、对ARC的理解,自动引用是什么帮我们做的? 3、...

网友评论

      本文标题:2020-03

      本文链接:https://www.haomeiwen.com/subject/fflvuhtx.html