ifish/Ifish/UMCommunity/UMCommunitySDK/UMComDataController/UMComListDataController.h

139 lines
3.7 KiB
Objective-C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

//
// UMComDataController.h
// UMCommunity
//
// Created by umeng on 16/4/29.
// Copyright © 2016年 Umeng. All rights reserved.
//
#import <Foundation/Foundation.h>
#import <UMCommunitySDK/UMComDataRequestManager.h>
#define UMCom_Limit_Page_Count 20 //分页请求默认数据
@class UMComListDataController;
typedef void (^UMComDataListRequestCompletion)(NSArray *responseData,NSError *error);
typedef enum {
UMComObjectChangeType_update,
UMComObjectChangeType_insert,
UMComObjectChangeType_delete,
}UMComObjectChangeType;
@interface UMComListDataController : NSObject
/**
* 下一页请求的url(在请求任一页数据时会返回下一页请求的url每个接口通过对应的下一页请求url请求下一页数据)
*/
@property (nonatomic, copy) NSString *nextPageUrl;
/**
*是否能查看下一页
*/
@property (nonatomic, assign) BOOL canVisitNextPage;
/**
*是否有下一页
*/
@property (nonatomic, assign) BOOL haveNextPage;
/**
*每次请求的个数(在请求第一页的时候有效,之后请求下一页的个数都以请求第一页的个数为准)
*/
@property (nonatomic, assign) NSInteger count;
/**
*数据列表比如请求的是Feed列表 那么dataArray中的元素就是UMComFeed类对象以此类推
*/
@property (nonatomic, strong) NSMutableArray *dataArray;
/**
* 下一页请求接口类型
*/
@property (nonatomic, assign) UMComPageRequestType pageRequestType;
/**
* 是否读本地数据 默认为NO,设置YES后界面第一次进入会读入本地的数据然后下拉刷新就直接读入网络的数据
*/
@property (nonatomic, assign) BOOL isReadLoacalData;
/**
* 是否保存本地数据默认为NO,设置为YES后每次下来就会保存下拉刷新的第一页的数据用作缓存
*/
@property (nonatomic, assign) BOOL isSaveLoacalData;
/**
* ListData下feed下置顶的个数用于在插入新feed的时候来判断插入到置顶feed下面而在普通feed前面
*/
@property (nonatomic, assign) NSInteger topItemsCount;
+ (UMComListDataController *)dataControllerWithCount:(NSInteger)count;
/**
* 初始化方法
* @param count 请求个数
*/
- (instancetype)initWithCount:(NSInteger)count;
/**
* 读取
*/
- (instancetype)initWithRequestType:(UMComPageRequestType)requestType count:(NSInteger)count;
/**
* 读取本地数据
*
* @param localfetchcompletion 本地数据回调
*/
-(void)fetchLocalDataWithCompletion:(UMComDataListRequestCompletion)localfetchcompletion;
/**
* 存储本地数据
*
*/
-(void)saveLocalDataWithDataArray:(NSArray*)dataArray;
/**
*请求第一页数据
*/
- (void)refreshNewDataCompletion:(UMComDataListRequestCompletion)completion;
/**
*请求下一页数据
*/
- (void)loadNextPageDataWithCompletion:(UMComDataListRequestCompletion)completion;
#pragma mark - DataHandleMethod
/**
* 处理本地数据
*
* @param data 本地读取的数据 是个数组
* @param error @see NSError
* @param completion 回调方法
*/
- (void)handleLocalData:(NSArray *)data error:(NSError *)error completion:(UMComDataListRequestCompletion)completion;
/**
* 处理第一页请求的数据
*
* @param data 第一页请求返回数据
* @param error @see NSError
* @param completion 回调方法
*/
- (void)handleNewData:(NSDictionary *)data error:(NSError *)error completion:(UMComDataListRequestCompletion)completion;
/**
* 处理下一页请求的数据
*
* @param data 下一页请求返回数据
* @param error @see NSError
* @param completion 回调方法
*/
- (void)handleNextPageData:(NSDictionary *)data error:(NSError *)error completion:(UMComDataListRequestCompletion)completion;
@end