在我的应用中,我使用以下方法从远程服务器POST /获取数据。
postData = [self sendSynchronousRequest:request returningResponse:&response error:&error];
- (NSData *)sendSynchronousRequest:(NSURLRequest *)request returningResponse:(NSURLResponse **)response error:(NSError **)error
{
NSError __block *err = NULL;
NSData __block *data;
BOOL __block reqProcessed = false;
NSURLResponse __block *resp;
[[[NSURLSession sharedSession] dataTaskWithRequest:request completionHandler:^(NSData * _Nullable _data, NSURLResponse * _Nullable _response, NSError * _Nullable _error) {
resp = _response;
err = _error;
data = _data;
reqProcessed = true;
}] resume];
while (!reqProcessed) {
[NSThread sleepForTimeInterval:0];
}
*response = resp;
*error = err;
return data;
}
我对没有网络连接具有基本的错误处理,并且应用程序将用户定向到没有网络连接的viewController。但是我想考虑一下例如服务器关闭或api的数据格式已更改的情况,只是想知道如何捕获此类错误并防止应用程序崩溃。
答案 0 :(得分:0)
一些要点:
避免崩溃的方法是理智地检查返回的数据,例如