gpt4 book ai didi

ios - 如果字符串值包含字符 '&',应用程序会崩溃

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

我正在处理从 Web 服务器上的 PHP 文件接收的 JSON 数组。

这是我为此使用的代码:

NSMutableString *ms = [[NSMutableString alloc] initWithString:@"http://mujercanariasigloxxi.appgestion.eu/app_php_files/comprobartipo.php?id="];
NSString *tipo=[[view annotation] title];
NSString* urlTextEscaped = [tipo stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
[ms appendString:urlTextEscaped];
NSLog(@"TIPO ES AQUI %@", urlTextEscaped);


NSURLRequest *request1 = [NSURLRequest requestWithURL:[NSURL URLWithString:ms]];

[NSURLConnection sendAsynchronousRequest:request1 queue:[NSOperationQueue mainQueue] completionHandler: ^(NSURLResponse *response, NSData *data1, NSError *connectionError) {
if (data1) {
NSArray *array = [NSJSONSerialization JSONObjectWithData:data1 options:0 error:nil];
NSLog(@"PROCEDENCIA DESDE INTERNET %@", [array objectAtIndex:0]);
NSLog(@"ESTO ES DATA en If %@",data1);
}else{
NSLog(@"ESTO ES DATA en ELSE %@",data1);
// Tell user there's no internet or data failedN
NSLog(@"NO HAY CONEXION");
}
}];

代码工作正常,但如果 NSString *tipo 的字符串值包含类似 & 的字符,应用程序会崩溃。

错误:

'NSRangeException', reason: '* -[__NSArrayI objectAtIndex:]: index 0 beyond bounds for empty array'

欢迎任何避免此问题的帮助。

最佳答案

你的崩溃将会在这里,

NSArray *array = [NSJSONSerialization JSONObjectWithData:data1 options:0 error:nil];

NSLog(@"PROCEDENCIA DESDE INTERNET %@", [array objectAtIndex:0]); // Crash will be here

您应该检查您的数组是否有对象。

让我们尝试如下

if (array.count)
NSLog(@"PROCEDENCIA DESDE INTERNET %@", [array objectAtIndex:0]);

谢谢!

关于ios - 如果字符串值包含字符 '&',应用程序会崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22575381/

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