iOS AFJSONRequestOperation 返回空结果
Posted
技术标签:
【中文标题】iOS AFJSONRequestOperation 返回空结果【英文标题】:iOS AFJSONRequestOperation returns empty results 【发布时间】:2013-12-27 10:53:00 【问题描述】:我正在尝试使用 AFJSONRequestOperation 从 JSON 请求中检索数据。 成功后,我能够成功检索数据,但无法完成请求并进一步转发数据以进行处理。
以下是我的代码
-(void) retrieveBrandList:(void (^)(NSArray *brandList))success failure:(void (^)(NSError *error))failure
//__block NSArray *brandList =[[NSArray alloc] init];
NSString *BrandListURL= http://127.0.0.1:8888/know/rest/brand
NSURLRequest *request = [NSURLRequest requestWithURL:url];
NSLog(@"Brand List URL = %@", BrandListURL);
AFJSONRequestOperation *operation =[AFJSONRequestOperation
JSONRequestOperationWithRequest: request
success:^(NSURLRequest *request, NSHTTPURLResponse *response, id responseObject)
NSLog(@"%@", responseObject);
brandList = [self successBandList:responseObject]; // parsing the JSON response in separate method (success block code)
if (success)
success(brandList);
failure:^(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error, id responseObject)
message:[NSString stringWithFormat:@"%@",error];
if (failure)
failure(error);
];
[operation start];
[operation waitUntilFinished];
以下是检索数据的数据管理器。
- (NSArray *)getBrandList
@try
[brand retrieveBrandList:^(NSArray *brandList)
brands = brandList;
failure:^(NSError *error)
];
NSLog(@"Retriving Brand list completed");
return brands;
@catch (NSException * e)
NSLog(@"Exception: %@ , Error while getting the brand list", e);
return NULL;
我如何完成操作并使用或存储结果以供其他方法进一步处理?
【问题讨论】:
【参考方案1】:id jsonObject = [NSJSONSerialization JSONObjectWithData:responseObject options:NSJSONReadingAllowFragments error:&error];
if ([jsonObject isKindOfClass:[NSDictionary class]])
self.jsonDictionary = jsonObject;
你也可以检查其他选项,但这对我有用
【讨论】:
我正在尝试创建一个没有任何 GUI 的框架。我要做的就是将结果存储在某个变量中并完成程序执行 是的,所以你不能用这个做什么 解析 Json 工作正常。我在返回数据时遇到问题。因为 AFJSONRequestOperation 的异步方法。此操作返回空结果 你检查过 Charlse 的回复吗? 能否请您提供 Charlse 的链接?以上是关于iOS AFJSONRequestOperation 返回空结果的主要内容,如果未能解决你的问题,请参考以下文章