Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 使用NSArray崩溃时代码中的错误_Objective C_Ios_Arrays_Nsmutablearray_Nsarray - Fatal编程技术网

Objective c 使用NSArray崩溃时代码中的错误

Objective c 使用NSArray崩溃时代码中的错误,objective-c,ios,arrays,nsmutablearray,nsarray,Objective C,Ios,Arrays,Nsmutablearray,Nsarray,我正在做一个代码,显示名单上的人的名字 每个日期的列表都不一样,所以我的问题是,当只有1人或没有人签名时,我创建了一个索引超出人数限制的数组,它崩溃了。我知道这是因为数组是空的,但是如何让代码忽略空数组呢 我试着做一个“如果”,计算数组的数量,然后决定发布数组,或者干脆不发布名称。但它不是这样工作的,我仍然得到越界例外 我应该如何管理空阵列 我的代码: NSString *html = [request2 responseString]; NSMutableArray *arr2 = [html

我正在做一个代码,显示名单上的人的名字

每个日期的列表都不一样,所以我的问题是,当只有1人或没有人签名时,我创建了一个索引超出人数限制的数组,它崩溃了。我知道这是因为数组是空的,但是如何让代码忽略空数组呢

我试着做一个“如果”,计算数组的数量,然后决定发布数组,或者干脆不发布名称。但它不是这样工作的,我仍然得到越界例外

我应该如何管理空阵列

我的代码:

NSString *html = [request2 responseString];
NSMutableArray *arr2 = [html componentsSeparatedByString:@"vagter"];
NSString *html1 = [arr2 objectAtIndex:1];

//name1
NSMutableArray *arr3 = [html1 componentsSeparatedByString:@"<td><font color=#ffffff>"];
NSString *html2 = [arr3 objectAtIndex:1];
NSMutableArray *arr4 = [html2 componentsSeparatedByString:@"</font></td>"];
NSString *html3 = [arr4 objectAtIndex:0];

_name.text = html3;

//name 2
NSMutableArray *arr5 = [html1 componentsSeparatedByString:@"<td><font color=#ffffff>"];

if ([arr5 count] > 4) {
    NSString *html4 = [arr5 objectAtIndex:5];
    NSMutableArray *arr6 = [html4 componentsSeparatedByString:@"</font></td>"];
    NSString *html5 = [arr6 objectAtIndex:0];

    _name.text = html5;
}
else
{
    _name1.text = @"No name";
}
NSString*html=[request2-responseString];
NSMutableArray*arr2=[html组件由字符串分隔:@“vagger”];
NSString*html1=[arr2 objectAtIndex:1];
//名称1
NSMUTABLEARRY*arr3=[html1组件由字符串分隔:@”“];
NSString*html2=[arr3 objectAtIndex:1];
NSMUTABLEARRY*arr4=[html2组件由字符串分隔:@”“];
NSString*html3=[arr4 objectAtIndex:0];
_name.text=html3;
//名称2
NSMUTABLEARRY*arr5=[html1组件由字符串分隔:@”“];
如果([arr5计数]>4){
NSString*html4=[arr5 objectAtIndex:5];
NSMUTABLEARRY*arr6=[html4组件由字符串分隔:@”“;
NSString*html5=[arr6 objectAtIndex:0];
_name.text=html5;
}
其他的
{
_name1.text=@“无名称”;
}
它应该是:

if ([arr5 count] > 5) {

    NSString *html4 = [arr5 objectAtIndex:5];
    ...
实际上,索引5将对应于第六个数组项,因此其中必须至少有6个对象


如果要在所有情况下检查数组边界,请使用相同的模式。

问题在于,您希望从ComponentSeparatedByString返回的结果与您的期望一致

显然,这不起作用

数组处理很简单。不要索要不存在的物品

检查计数,仅访问从0到计数-1的索引


如果计数为零,不要访问任何内容。

你说得太对了;嗯,很抱歉我问了个愚蠢的问题,我确实花了很多时间反复检查我的代码:Pdon别担心:当你被某件事情缠住的时候,通常是一些可以很容易监督的事情。。。另一双眼睛可以帮助。。。