我正在尝试检查 JSON 值是“打开”还是“关闭”,然后对其执行操作:
-(IBAction)turnon {
NSURL *api = [NSURL URLWithString:@"http://app-content.co.uk/api/example.json"];
NSURLRequest *request = [NSURLRequest requestWithURL:api];
AFJSONRequestOperation *operation = [AFJSONRequestOperation JSONRequestOperationWithRequest:request success:^(NSURLRequest *request, NSHTTPURLResponse *response, id JSON) {
self.getinfo = [JSON objectForKey:@"data"];
NSLog(@"Rapid reply: %@", JSON);
} failure:nil];
NSDictionary *getDB= [self.getinfo objectAtIndex:0];
[operation start];
if([[getDB objectForKey:@"50min_1"] isEqualToString:@"on"])
{
NSLog(@"Works");
}
else {
NSLog(@"Doesn't work");
}
}
我的 JSON 文件如下所示:
{
"data": [
{
"50min_1": "on",
"50min_2": "on",
"50min_3": "on",
"50min_4": "on",
"50min_5": "on",
"50min_6": "on",
"50min_7": "on",
"50min_8": "on"
}
]
}
如果我这么说,一切看起来都很好,但是 NSLog 总是报告“不起作用”,这意味着它没有从 JSON 文件中获得正确的值,尽管服务器上有值。
NSLog(@"Rapid reply: %@", JSON);
按原样回复 JSON 文件。
我错过了什么?
最佳答案
问题很简单 - 您试图在操作完成之前很久就处理异步操作的结果。
将您的 if
语句移到完成 block 中。
还有一个建议 - 不要为失败 block 传递 nil
。至少您应该提供一个 block 来记录您遇到的任何错误。
关于ios - JSON AFNetworking iOS 6 查看值是否为 "on",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17196705/