在写网络请求时遇到
/**
发送post请求
@param URLString 请求的网址字符串
@param parameters 请求的参数
@param success 请求成功的回调
@param failure 请求失败的回调
*/
- (void)postWithURLString:(NSString *)URLString parameters:(id)parameters success:(id (^)(id responseObject))success failure:(void (^)(NSError *error))failure;
在这里我请求成功的回调不是 void 而是 id
#pragma mark -- POST请求 --
- (void)postWithURLString:(NSString *)URLString parameters:(id)parameters success:(id (^)(id))success failure:(void (^)(NSError *))failure {
AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
//可接受的类型
manager.responseSerializer = [AFHTTPResponseSerializer serializer];
[manager POST:URLString parameters:parameters progress:nil success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {
//成功的回调
if (success) {
success(responseObject);
}
} failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
//失败的回调
if (failure) {
failure(error);
}
}];
}
然后我在进行网络请求的时候
前面已经说过,我用的是id 而不是void 所以说这里必须得return一下,也就是得有个返回值
so:
其实一般请求成功的回调和请求失败的回调都使用void...