0

我正在使用 AFNetworking 版本 0.10.x 来兼容 iOS 4.3。这个版本的 AFNetworking 不使用 arc,因此 AFHTTPClient 以及其他 AFNetworking 类都fno-objc-arc应用了标志(我的项目的其余部分使用 ARC)。在一个函数中,我有以下代码:

AFHTTPClient *httpClient = [[AFHTTPClient alloc] initWithBaseURL:[NSURL URLWithString:url]];
[httpClient setParameterEncoding:AFJSONParameterEncoding];
NSMutableURLRequest *urlRequest = [httpClient requestWithMethod:method
                                                           path:nil
                                                     parameters:adjustedParameters];
NSLog(@"returning: %@", urlRequest);
return urlRequest;

我看到的问题是 urlRequest 总是返回为 NULL。

我什至用调试器逐步完成了这段代码:

图片描述问题

如您所见,当调试器指出 url 请求指向一个有效的内存地址时,日志打印出一个 null 值。我正在使用 Xcode 4.6.3 在 iOS 6.0 上运行我的项目。关于问题是什么的任何想法?

4

2 回答 2

1

问题是该方法requestWithMethod:path:parameters:返回一个 nil 请求对象,因为我nil作为路径参数传递。我的代码应该是:

urlRequest = [httpClient requestWithMethod:method
                                      path:@""
                                parameters:adjustedParameters];
于 2013-09-30T20:19:57.040 回答
0

尝试设置默认标头的接受返回类型。例如在我的代码中: [client setDefaultHeader:@"Accept" value:@"text/html"]它也可能application/json取决于您的返回类型标头。

有关更多详细信息,请参见此处(尽管 OP 在提到的链接中得到的响应与您的不同。这可能是由于 ARC 和非 ARC 之间的差异)

于 2013-09-29T07:16:53.153 回答