123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- //
- // RQTableViewModel.m
- // RQCommon
- //
- // Created by 张嵘 on 2018/11/23.
- // Copyright © 2018 张嵘. All rights reserved.
- //
- #import "RQTableViewModel.h"
- @interface RQTableViewModel ()
- /// request remote data cmd
- @property (nonatomic, readwrite, strong) RACCommand *requestRemoteDataCommand;
- @end
- @implementation RQTableViewModel
- - (void)initialize {
- [super initialize];
-
- self.page = 1;
- self.perPage = 20;
- self.dataTotalNum = 0;
-
- /// request remote data
- @weakify(self)
- self.requestRemoteDataCommand = [[RACCommand alloc] initWithSignalBlock:^(NSNumber *page) {
- @strongify(self)
- return [[self requestRemoteDataSignalWithPage:page.unsignedIntegerValue] takeUntil:self.rac_willDeallocSignal];
- }];
-
- /// 过滤错误信息
- [[self.requestRemoteDataCommand.errors
- filter:[self requestRemoteDataErrorsFilter]]
- subscribe:self.errors];
- }
- /// sub class can ovrride it
- - (BOOL (^)(NSError *error))requestRemoteDataErrorsFilter {
- return ^(NSError *error) {
- return YES;
- };
- }
- - (id)fetchLocalData {
- return nil;
- }
- - (NSUInteger)offsetForPage:(NSUInteger)page {
- return (page - 1) * self.perPage;
- }
- - (RACSignal *)requestRemoteDataSignalWithPage:(NSUInteger)page {
- return [RACSignal empty];
- }
- @end
|