iOS表格绘制

CTAPIBaseManager网络使用

2022-01-20  本文已影响0人  张小凡123

1.引入CTNetworking文件夹,目录结构如下:

WechatIMG26.png

2.自定义网络配置,项目目录结构如下:

WechatIMG28.png

3.CTCTAPIBaseManager使用如下:

1.未创建reformer数据过滤场景

  ###1.1直接创建一个APIManager类,继承CTAPIBaseManager,并遵守协议CTAPIManager,如下
WechatIMG29.png WechatIMG30.png
###1.2在控制器里创建APIManager,并实现代理方法,如下图:
WechatIMG33.png WechatIMG34.png WechatIMG35.png

2.创建reformer数据过滤场景

2.1创建reformer类继承NSObject,并遵守协议CTAPIManagerDataReformer,实现协议方法如下图:

WechatIMG37.png WechatIMG38.jpeg

2.2在控制器里创建APIManager同上,代理方法如下:

WechatIMG39.png

CTAPIBaseManager封装使用

使用:[[XHNetworkClient sharedClient] postDataWithParams:(NSDictionary *)parmas
path:(NSString *)path
successBlock:(CTAPIBaseManagerSuccessBlock) successBlock
failedBlock:(CTAPIBaseManagerFailedBlock)failedBlock];

##1.新建一个网络请求管理类继承CTAPIManager,遵守协议CTAPIManager,实现协议方法,如下:
-----------.h文件------------------------
#import <Foundation/Foundation.h>
#import "CTAPIBaseManager.h"

NS_ASSUME_NONNULL_BEGIN

@interface XHNetowrkRequestManager : CTAPIBaseManager
<CTAPIManager>

@property (nonatomic, copy) NSString *methodName;
@property (nonatomic, copy) NSString *serviceType;
@property (nonatomic, assign) CTAPIManagerRequestType requestType;

- (BOOL)shouldCache;

-----------.m文件------------------------
#import "XHNetowrkRequestManager.h"

@implementation XHNetowrkRequestManager

- (instancetype)init
{
    self = [super init];
    if (self) {
              //如果有多个services服务(多个baseUrl服务),需创建多个RequestManager和NetworkClient
        self.serviceType = kCTServiceChngalaxyService;
    }
    return self;
}
- (BOOL) shouldCache
{
    return NO;
}
@end


  ##2.新建一个网络工具类,如下.h:
#import <Foundation/Foundation.h>
#import "CTAPIBaseManager.h"

NS_ASSUME_NONNULL_BEGIN

@interface XHNetworkClient : NSObject

 
+ (instancetype)sharedClient;
//url:https://zlyjtest.chngsl.com/cmty_http/openDoor/remoteDoor     path:  /openDoor/remoteDoor  
- (void)loadDataWithParams:(NSDictionary *)parmas
                      path:(NSString *)path
                      methods:(CTAPIManagerRequestType)requestType
              successBlock:(CTAPIBaseManagerSuccessBlock) successBlock
               failedBlock:(CTAPIBaseManagerFailedBlock)failedBlock;

- (void)getDataWithParams:(NSDictionary *)parmas
                     path:(NSString *)path  
             successBlock:(CTAPIBaseManagerSuccessBlock) successBlock
              failedBlock:(CTAPIBaseManagerFailedBlock)failedBlock;

- (void)postDataWithParams:(NSDictionary *)parmas
                     path:(NSString *)path
             successBlock:(CTAPIBaseManagerSuccessBlock) successBlock
              failedBlock:(CTAPIBaseManagerFailedBlock)failedBlock;



@end

#.m

#import "XHNetworkClient.h"
#import "XHNetowrkRequestManager.h"

static XHNetworkClient *singleManager = nil;


@interface XHNetworkClient ()

@property (nonatomic, strong) NSMutableArray *requetManagers;

@end

@implementation XHNetworkClient


+ (instancetype)sharedClient{
    static dispatch_once_t oneceToken;
    dispatch_once(&oneceToken, ^{
        singleManager = [[self alloc] init];
 
    });
    
    return singleManager;
}

- (void)loadDataWithParams:(NSDictionary *)parmas
                      path:(NSString *)path
                      methods:(CTAPIManagerRequestType)requestType
              successBlock:(CTAPIBaseManagerSuccessBlock) successBlock
               failedBlock:(CTAPIBaseManagerFailedBlock)failedBlock{
    
    XHNetowrkRequestManager *manager = [[XHNetowrkRequestManager alloc] init];
    manager.requestType = requestType;
    manager.methodName = path;
    __weak typeof(self) weakSelf = self;
    [manager setSuccessBlock:^(CTAPIBaseManager *manager) {
        if(successBlock){
            successBlock(manager);
        }
        [weakSelf.requetManagers removeObject:manager];
    }];
    [manager setFailedBlock:^(CTAPIBaseManager *manager) {
        if (failedBlock) {
            failedBlock(manager);
        }
        [weakSelf.requetManagers removeObject:manager];
    }];
    
 
    [self.requetManagers addObject:manager];
    [manager loadDataWithParams:parmas];
}


- (void)getDataWithParams:(NSDictionary *)parmas
                     path:(NSString *)path
             successBlock:(CTAPIBaseManagerSuccessBlock) successBlock
              failedBlock:(CTAPIBaseManagerFailedBlock)failedBlock{
    [self loadDataWithParams:parmas path:path methods:CTAPIManagerRequestTypeGet successBlock:successBlock failedBlock:failedBlock];
}

- (void)postDataWithParams:(NSDictionary *)parmas
                     path:(NSString *)path
             successBlock:(CTAPIBaseManagerSuccessBlock) successBlock
               failedBlock:(CTAPIBaseManagerFailedBlock)failedBlock{
    [self loadDataWithParams:parmas path:path methods:CTAPIManagerRequestTypePost successBlock:successBlock failedBlock:failedBlock];
}

#pragma mark - getter
- (NSMutableArray *)requetManagers{
    if(!_requetManagers){
        NSMutableArray *manager = [[NSMutableArray alloc] init];
        _requetManagers = manager;
        
    }
    
    return _requetManagers;
}




   




上一篇 下一篇

猜你喜欢

热点阅读