后台返回的接口有很多,统一放在一个类里去调用会比较方便一些。看到网上也没有相关的资料,决定自己摘录自己项目上自己封装的接口类,写的不好多多批评!!!!感激涕零!
一、首先要创建一个单例工具类JSSingleton_h
// .h文件
// ## :拼接前后两个字符串
#define JSSingleton_h(name) +(instancetype)shared##name;
#if __has_feature(objc_arc) // arc
#define JSSingleton_m(name) \
+(instancetype)shared##name{ \
return [[self alloc] init]; \
}\
\
- (id)copyWithZone:(NSZone *)zone{\
return self;\
}\
\
+ (instancetype)allocWithZone:(struct _NSZone *)zone {\
static id instance;\
static dispatch_once_t onceToken;\
dispatch_once(&onceToken, ^{\
instance = [super allocWithZone:zone];\
});\
return instance;\
}
#else // 非arc
#define JSSingleto_m(name) \
+(instancetype)shared##name{ \
return [[self alloc] init]; \
}\
\
- (id)copyWithZone:(NSZone *)zone{\
return self;\
}\
\
+ (instancetype)allocWithZone:(struct _NSZone *)zone {\
static id instance;\
static dispatch_once_t onceToken;\
dispatch_once(&onceToken, ^{\
instance = [super allocWithZone:zone];\
});\
return instance;\
}\
- (oneway void)release {\
\
}\
\
- (instancetype)autorelease {\
return self;\
}\
\
- (instancetype)retain {\
return self;\
}
#endif
二、首先新建一个NSObject类目,命名为HttpString。并且添加上JSSingleton.h
头文件
// Created by 纵昂 on 2019/9/11.
// Copyright © 2019 za. All rights reserved.
//
#import <Foundation/Foundation.h>
#import "JSSingleton.h"
NS_ASSUME_NONNULL_BEGIN
@interface HttpString : NSObject
JSSingleton_h(UrlCenter)
//首页
@property (nonatomic ,copy) NSString*za_HomeIndex;//整个首页
//我的
@property (nonatomic ,copy) NSString*za_My; //我的
//登录和注册
@property (nonatomic ,copy) NSString*za_Login; //登录
@end
NS_ASSUME_NONNULL_END
三、在.h文件中定义好每个接口的方法之后再.m文件去调用
// Created by 纵昂 on 2019/9/6.
// Copyright © 2019 za. All rights reserved.
//
#import "HttpString.h"
//正式地址(接口域名地址) 用这个拼接口
#define AppMainUrl @"http://11.11.111.11/zongang/"
@implementation HttpString
JSSingleton_m(UrlCenter)
//----------------------------------------HomePage首页-----------------------------//
// 首页
-(NSString *)za_HomeIndex{
return [NSString stringWithFormat:@"%@zongt/home",AppMainUrl];
}
// 我的
-(NSString *)za_My{
return [NSString stringWithFormat:@"%@zongt/my",AppMainUrl];
}
//登录
-(NSString *)za_Login{
return [NSString stringWithFormat:@"%@zongt/my",AppMainUrl];
}
@end
四、在请求方法上使用
在请求上直接写[ZAHttpString sharedUrlCenter].za_HomeIndex
// An highlighted block
NSMutableURLRequest * requst = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:self.urlString]];
equst = [NSMutableURLRequest requestWithURL:[ZAHttpString sharedUrlCenter].za_HomeIndex];
requst.HTTPMethod = @"POST";
//现在大多数高手都是封装的请求,可根据自己的请求方式来定,但不变的是[ZAHttpString sharedUrlCenter].za_HomeIndex这样的写法
//方便后期改
//至于参数也有封装方法我就不一一写了,有点low
// 本人邮箱
雅虎:zongang15@yahoo.com
如果大佬还有什么好的封装方法可以多多请教!!!