我正在从json Web服务访问我的应用程序中的数据。每当没有json数据应用程序崩溃时,我正在使用nsjsonserialization,无论如何我可以在响应本身找出空数组并显示错误,从而不会使应用程序崩溃。
答案 0 :(得分:1)
试试这个。 。 。
NSArray * dataArray = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:nil];
if (dataArray != nil) {
// perform parsing
}
答案 1 :(得分:1)
如果你想检查它是否为空:
if ([myMutableArray count] != 0) { ... }
如果要检查变量是否为nil:
if (myMutableArray) { ... }
或:
if (myMutableArray != nil) { ... }
答案 2 :(得分:0)
预期的异常..尝试条件是否具有JSon Value Or Not
:
这样的事情:
UserDetails = [NSJSONSerialization JSONObjectWithData:returnData options:0 error:nil];
NSLog(@"User Det %@", UserDetails);
if (!UserDetails){
NSLog(@"Doesn't exist");
}else{
NSlog(@"%@",[UserDetails objectForKey:@"lastName"]);
.....
}
答案 3 :(得分:0)
检查数据是否为零或是否发生错误或数据长度
[NSURLConnection sendAsynchronousRequest:urlRequest queue:queue completionHandler:^(NSURLResponse *response, NSData *data, NSError *error)
{
NSInteger responseCode = [(NSHTTPURLResponse *)response statusCode];
NSLog(@"responseCode: %d", responseCode); //check response code
if ([data length] > 0 && error == nil)
//data downloaded -> continue
NSArray *jsonArray = [NSJSONSerialization JSONObjectWithData:data options:0 error:&error];
else if ([data length] == 0 && error == nil)
//empty reply
else if (error != nil && error.code == ERROR_CODE_TIMEOUT)
// time out
else if (error != nil)
//error
}];