1

我使用 AFNetworking 与我的 Web 服务进行通信,代码如下:

-(NSMutableDictionary*)getData:(NSString*)userID{

__block NSMutableDictionary *data;
AFHTTPClient *httpClient = [[AFHTTPClient alloc]initWithBaseURL:[NSURL URLWithString:@"http://webservice.com/api/"]];

[httpClient setParameterEncoding:AFJSONParameterEncoding];
[httpClient registerHTTPOperationClass:[AFJSONRequestOperation class]];

[httpClient getPath:@"data" parameters:@{@"type":@"1", @"id":userID}
success:^(AFHTTPRequestOperation *operation, id JSON) {
    data = (NSMutableDictionary *) JSON;
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
    NSLog(@"Error occured!");
}];

return data;

}

调用此方法给我以下错误: [__NSPlaceholderDictionary initWithObjects:forKeys:count:]: 尝试从对象 [0] 插入 nil 对象'

这是什么意思?这不是失败,所以我不确定 Web 服务调用是否出错。

4

2 回答 2

3

确保 userID 不为零。

首先记录请求负载和服务器响应通常是一个好习惯,以确保一切正常。

于 2013-04-17T23:22:02.337 回答
-1

我的猜测是您将JSON变量转换为NSDictionary. 这是我所指的行:

data = (NSMutableDictionary *) JSON;

相反,您可能想尝试:

[NSJSONSerialization JSONObjectWithData:JSON
                                options:kNilOptions
                                  error:&error];

然后将其保存到您的data变量中。

于 2013-08-27T17:47:38.360 回答