向 JSON Web 服务检索失败发送空值或无值
Sending empty or no value to JSON webservice retrive faliure
我有 2 个 Web 服务,其中一个检索所有图像,另一个从 Web 服务检索过滤后的图像。
当应用程序加载时,它会调用检索所有图像的网络服务。当用户应用过滤器时,它会检索过滤后的图像。但我面临的问题是:
问题陈述:
当用户 select 至少有一个过滤器时它工作正常。但是当用户 un-select (意味着没有过滤器被 selected) 它失败了。我的网络服务的编码方式是,当没有传递任何参数时,它应该 return 所有图像,但事实并非如此。我希望它再次加载所有图像网络服务。
附代码解释:
[operation GET:@"stock_search" parameters:parameters success:^(AFHTTPRequestOperation *operation, id responseObject)
{
// operation is AFHTTPRequestOperationManager
NSMutableArray *temGalArray = [responseObject objectForKey:@"data"];
[imageArray removeAllObjects];
for (NSDictionary *myDict in temGalArray)
{
id object = [myDict objectForKey:@"square_image"];
if ([myDict objectForKey:@"square_image"]!=[NSNull null])
{
[imageArray addObject:myDict]; //this works fine
}
else if([object isEqual:[NSNull null]])
{
[self getGalleryFromWeb]; //***PROBLEM IS HERE***
//1: This condition is never true
//2: Self.getGalleryFromWeb is the webserivce that get
// all the images from web. There is no issue in that webservice
}
}
[galleryView reloadData];
}
//It always loads failure code below
failure:^(AFHTTPRequestOperation *operation, NSError *error)
{
UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"Error Applying Filters"
message:@"Check Your Internet Connection"
delegate:nil
cancelButtonTitle:@"OK"
otherButtonTitles:nil];
[alertView show];
}];
}
所以我应该在 `else if' 下写些什么,这样如果没有过滤器值被 selected 它会再次加载所有图像,就像应用程序加载时一样。我希望我已经解决了我的问题,因为这是我的第一个问题,所以如果有任何我想念的东西,我随时准备提供。
当您当时获得选择时,请检查过滤后的数组计数,如果它 >0,则不要调用任何网络服务。
这样,您之前加载的图像将不会 refresh.Just 仅在数组计数大于 0 时才调用过滤后的网络服务,然后重新加载您的数据。
我有 2 个 Web 服务,其中一个检索所有图像,另一个从 Web 服务检索过滤后的图像。
当应用程序加载时,它会调用检索所有图像的网络服务。当用户应用过滤器时,它会检索过滤后的图像。但我面临的问题是:
问题陈述:
当用户 select 至少有一个过滤器时它工作正常。但是当用户 un-select (意味着没有过滤器被 selected) 它失败了。我的网络服务的编码方式是,当没有传递任何参数时,它应该 return 所有图像,但事实并非如此。我希望它再次加载所有图像网络服务。
附代码解释:
[operation GET:@"stock_search" parameters:parameters success:^(AFHTTPRequestOperation *operation, id responseObject)
{
// operation is AFHTTPRequestOperationManager
NSMutableArray *temGalArray = [responseObject objectForKey:@"data"];
[imageArray removeAllObjects];
for (NSDictionary *myDict in temGalArray)
{
id object = [myDict objectForKey:@"square_image"];
if ([myDict objectForKey:@"square_image"]!=[NSNull null])
{
[imageArray addObject:myDict]; //this works fine
}
else if([object isEqual:[NSNull null]])
{
[self getGalleryFromWeb]; //***PROBLEM IS HERE***
//1: This condition is never true
//2: Self.getGalleryFromWeb is the webserivce that get
// all the images from web. There is no issue in that webservice
}
}
[galleryView reloadData];
}
//It always loads failure code below
failure:^(AFHTTPRequestOperation *operation, NSError *error)
{
UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"Error Applying Filters"
message:@"Check Your Internet Connection"
delegate:nil
cancelButtonTitle:@"OK"
otherButtonTitles:nil];
[alertView show];
}];
}
所以我应该在 `else if' 下写些什么,这样如果没有过滤器值被 selected 它会再次加载所有图像,就像应用程序加载时一样。我希望我已经解决了我的问题,因为这是我的第一个问题,所以如果有任何我想念的东西,我随时准备提供。
当您当时获得选择时,请检查过滤后的数组计数,如果它 >0,则不要调用任何网络服务。 这样,您之前加载的图像将不会 refresh.Just 仅在数组计数大于 0 时才调用过滤后的网络服务,然后重新加载您的数据。