// // 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