在这个问题上陡峭地学习,所以我在某处说出了99%的错误。
为我的第一个应用尝试一个简单的过程。 我想从Web服务获取数据并将某些内容输出到标签。 我是一名.NET开发人员,因此Web服务已经完成,并在浏览器中按预期返回JSON数据。 {" GetVenuesForBrandResult":[{" brandID":0," createdDate":" /日期(-62135596800000 + 0000)/&#34 ;, " venueID":2," venueName":" HMV Records"}]}
在查看SO之后,决定使用AFNetworking,版本2.0,作为pod加载。
所以一切都在获取数据方面有效,但请提出2个问题; 1)Xcode中的输出视图显示数据; GetVenuesForBrandResult =({brandID = 0; createdDate =" / Date(-62135596800000 + 0000)/&#34 ;; venueID = 2; venueName =" HMV Records&#34 ;; } ); 这只是用于显示目的的XCode5格式吗?我的数据是真实的json吗? 2)我该如何消费? 尝试检查isKindOfClass是否为nsarray或nsdictionary,如果从未满足条件,则检查这些。这让我怀疑Q1是个问题。
感谢您对Xcode新手的帮助。
根据保罗的出色提示,我的代码的相关部分就在这里; 现在,为了测试目的,Web服务链接是硬编码的
NSString *urlstring = @"http://hiddenurl/shopBeaconService/Service1.svc/GetVenuesForBra nd/1";
//NSString *str2 = self.email.text;
//NSString *str3 = @"/";
//NSString *str4 = [self.password text];
//NSString *urlstring = [NSString stringWithFormat:@"%@%@%@%@",str1,str2,str3,str4];
NSURL *url = [NSURL URLWithString:urlstring];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation alloc] initWithRequest:request];
operation.responseSerializer = [AFJSONResponseSerializer serializer];
[operation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation,id responseObject)
{
NSLog(@"%@",responseObject);
// NSDictionary *item = [responseObject objectForKey:@""];
// NSString *title = [item objectForKey:@"venueName"];
//NSLog(@"venue= %@",title);
} failure:nil];
[operation start];
答案 0 :(得分:1)
使用AFJSONResponseSerializer时的响应对象是NSDictionary。您在日志中看到的是[responseObject description]
的输出 - 一种打印用于记录目的的描述的方法。
Ray Wenderlich在AFNetworking上有一个很好的tutorial