Skip to content

最新版本的代码逻辑不通 #23

@datoujiejie

Description

@datoujiejie

CTApiProxy中
NSDictionary *result = [request.service resultWithResponseObject:responseObject response:response request:request error:&error];
如果上面返回的error是nil,对error取地址的话是有值的
接下来Demoservice中,提前返回了,造成请求成功时kCTApiProxyValidateResultKeyResponseObject里面的值为空,后面的请求结果拿不到值

`- (NSDictionary *)resultWithResponseObject:(id)responseObject response:(NSURLResponse *)response request:(NSURLRequest *)request error:(NSError **)error
{
NSMutableDictionary *result = [[NSMutableDictionary alloc] init];
if (error || !responseObject) {
return result;
}

if ([responseObject isKindOfClass:[NSData class]]) {
    result[kCTApiProxyValidateResultKeyResponseString] = [[NSString alloc] initWithData:responseObject encoding:NSUTF8StringEncoding];
    result[kCTApiProxyValidateResultKeyResponseObject] = [NSJSONSerialization JSONObjectWithData:responseObject options:0 error:NULL];
} else {
    //这里的kCTApiProxyValidateResultKeyResponseString是用作打印日志用的,实际使用时可以把实际类型的对象转换成string用于日志打印

// result[kCTApiProxyValidateResultKeyResponseString] = responseObject;
result[kCTApiProxyValidateResultKeyResponseObject] = responseObject;
}

return result;

}`

既然error是用于判断的,就不要写成 error:(NSError **)error这种形式,建议修改如下

NSDictionary *result = [request.service resultWithResponseObject:responseObject response:response request:request error:error];
- (NSDictionary *)resultWithResponseObject:(id)responseObject response:(NSURLResponse *)response request:(NSURLRequest *)request error:(NSError *)error

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions