gpt4 book ai didi

Objective-C 错误处理

转载 作者:行者123 更新时间:2023-12-03 08:58:26 25 4
gpt4 key购买 nike

任何人都知道当出现以下错误时我如何处理错误代码:

database_flag = [NSString stringWithContentsOfURL:database_flag_query encoding:NSASCIIStringEncoding error:&error];

要解释更多,请在我的代码下面找到
基本上我想检查 mysql 的标志
如果标志为 1,那么我从数据库中获取流的 IP 地址
否则我使用本地的一家商店。
唯一的问题是当无法访问 mysql 服务器时程序卡住了!!
database_flag_query = [NSURL URLWithString:@"http://192.168.0.20/iqkradio_stream_ip_flag.php"];
database_flag = [NSString stringWithContentsOfURL:database_flag_query encoding:NSASCIIStringEncoding error:&error];

database_flag = [database_flag stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];

if ([database_flag isEqualToString: @"1"])
{
NSLog(@"URL flag is set");
database_url_query = [NSURL URLWithString:@"http://192.168.0.20/iqkradio_stream_ip_url.php"];
database_url = [NSString stringWithContentsOfURL:database_url_query encoding:NSASCIIStringEncoding error:&error];
database_url = [database_url stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
url1 = [NSURL URLWithString:[database_url stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
NSLog(database_url);
}

else
{
NSLog(@"URL flag is not set, Reverting to stored value");
url1 = [NSURL URLWithString: [NSString stringWithFormat: @"http://radio.qkradio.com.au:8382/listen.mp3"]];
}



streamer = [[AudioStreamer alloc] initWithURL:url1];

最佳答案

编辑 - NSURLConnection 和超时 - 基于下面的附加信息和评论流,并将信息放入答案中(而不是长评论流):

请参阅此问题的已接受答案 here对于超时示例。对于 NSURLConnection 示例,请查看苹果文档 here

一般错误处理 -

以下链接可能会有所帮助 --> http://developer.apple.com/library/ios/#documentation/cocoa/conceptual/ProgrammingWithObjectiveC/ErrorHandling/ErrorHandling.html .

“在你调用这个方法之前,你需要创建一个合适的指针,以便你可以传递它的地址:

NSError *anyError;
BOOL success = [receivedData writeToURL:someLocalFileURL
options:0
error:&anyError];
if (!success) {
NSLog(@"Write failed with error: %@", anyError);
// present error to user
}

如果发生错误,writeToURL:... 方法将返回 NO,并更新您的 anyError 指针以指向描述问题的错误对象。

在处理引用传递的错误时,重要的是要测试方法的返回值,看看是否发生了错误,如上所示。不要只是测试错误指针是否设置为指向错误。”

因此,对于您的问题,请尝试添加:
if(!database_flag)
{
//call your error handling function
[myFunction withError: error];
}

在修剪 database_flag 之前.如果您的连接无法正常工作,那么您需要在继续访问 if([database_flag isEqualToString:... 之前对其进行处理。代码。

如果这不能解决问题,您能否提供一些信息/日志语句,说明导致您的应用程序停止的错误在哪里/是什么?

希望有帮助。

关于Objective-C 错误处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15984304/

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