1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- //
- // RQCollectionViewModel.m
- // YueXueChe
- //
- // Created by 张嵘 on 2018/12/18.
- // Copyright © 2018 lee. All rights reserved.
- //
- #import "RQCollectionViewModel.h"
- @interface RQCollectionViewModel ()
- /// request remote data cmd
- @property (nonatomic, readwrite, strong) RACCommand *requestRemoteDataCommand;
- @end
- @implementation RQCollectionViewModel
- - (void)initialize {
- [super initialize];
-
- self.page = 1;
- self.perPage = 20;
-
- /// 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
|