gpt4 book ai didi

ios - 如果我的 JSON 未加载,显示 UIAlertView?

转载 作者:行者123 更新时间:2023-11-29 04:19:11 25 4
gpt4 key购买 nike

这是我的问题。如果我的应用程序无法加载远程 JSON 文件,如何显示错误?我关闭了计算机上的 WiFi,并在模拟器中运行了该应用程序。它 NSLogs 如果存在连接则应显示的消息。我怎样才能解决这个问题?谢谢。

这是我的代码:

- (void)viewDidLoad
{
[super viewDidLoad];

NSString *jsonStr = @"http://xxx.com/server.php?json=1";
NSURL *jsonURL = [NSURL URLWithString:jsonStr];
// NSData *jsonData = [NSData dataWithContentsOfURL:jsonURL];
// NSError *jsonError = nil;
NSURLRequest *jsonLoaded = [NSURLRequest requestWithURL:jsonURL];

if(!jsonLoaded) {

UIAlertView *alertView = [[UIAlertView alloc] init];
alertView.title = @"Error!";
alertView.message = @"A server with the specified hostname could not be found.\n\nPlease check your internet connection.";
[alertView addButtonWithTitle:@"Ok"];
[alertView show];
[alertView release];
NSLog(@"No connection, JSON not loaded...");

}
else {
NSLog(@"JSON loaded and ready to process...");
}
}

最佳答案

您的代码只是创建请求。它实际上并不获取数据。您需要使用 NSURLConnection 来获取数据。

有多种方式获取数据。此示例适用于 iOS 5.0 或更高版本:

NSOperationQueue *q = [[[NSOperationQueue alloc] init] autorelease];
NSURLRequest *jsonRequest = [NSURLRequest requestWithURL:jsonURL];
[NSURLConnection sendAsynchronousRequest:jsonRequest
queue:q
completionHandler:^(NSURLResponse *response, NSData *data, NSError *error) {
// data was received
if (data)
{
NSLog(@"JSON loaded and ready to process...");
// ... process the data
}
// No data received
else
{
NSLog(@"No connection, JSON not loaded...");
// ... display your alert view
}
}];

关于ios - 如果我的 JSON 未加载,显示 UIAlertView?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13219415/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com