该对象未保存在NSMutableArray中

时间:2012-08-10 07:55:51

标签: ios

这是方法中的一段代码,通过TFHpple加载一些元素:

// kvota1Niz, KvotaxNiz and Kvota2Niz are result arrays from TFHpple parser
NSArray *kvota1Niz = [kvoteParser searchWithXPathQuery:kvota1XpathUpit];
NSArray *kvotaxNiz = [kvoteParser searchWithXPathQuery:kvotaxXpathUpit];
NSArray *kvota2Niz = [kvoteParser searchWithXPathQuery:kvota2XpathUpit];
NSMutableArray *kvote1 = [[NSMutableArray alloc] initWithCapacity:0];
NSMutableArray *kvotex = [[NSMutableArray alloc] initWithCapacity:0];
NSMutableArray *kvote2 = [[NSMutableArray alloc] initWithCapacity:0];
NSMutableArray *privremeniArray = [[NSMutableArray alloc] initWithCapacity:0];
for (TFHppleElement *element in kvota1Niz)
{
    Par *trenutnaKvota1 =  [[Par alloc] init];
    [kvote1 addObject:trenutnaKvota1];
    trenutnaKvota.kvota1 = [[element firstChild] content];
}
for (TFHppleElement *element in kvotaxNiz)
{
    Par *trenutnaKvotax =  [[Par alloc] init];

    if ([_sekvencaLogoa objectAtIndex: [kvotaxNiz indexOfObject:element]] == @"2")
    {
        [privremeniArray addObject:trenutnaKvotaX]
    }
    else
    {
        [kvotex addObject:trenutnaKvotax];
    }
    trenutnaKvota.kvotax = [[element firstChild] content];
}
for (TFHppleElement *element in kvota2Niz)
{
    Par *trenutnaKvota2 =  [[Par alloc] init];
    if ([_sekvencaLogoa objectAtIndex: [kvota2Niz indexOfObject:element]] == @"2")
    {
        [kvote2 addObject:[privremeniArray objectAtIndex:k]];
        k++;
    }
    else
    {
        [kvote2 addObject:trenutnaKvota2];
    }
    trenutnaKvota.kvota2 = [[element firstChild] content];
}
kvota1 = _kvota1;
kvotax = _kvotax;
kvota2 = _kvota2;

问题出在for(TFHppleElement *element in kvota2Niz),其中[privremeniArray objectAtIndex:k]未保存在kvote2数组中。程序进入for循环,因为我NSLogged的值为kkvota2NSString类的Par实例变量。 _sekvencaLogoa是一个包含字符串"2""3"的数组。

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

字符串比较不正确

 if ([_sekvencaLogoa objectAtIndex: [kvota2Niz indexOfObject:element]] == @"2")
        {
            [kvote2 addObject:[privremeniArray objectAtIndex:k]];
            k++;
        }

使用此:

 if ([[_sekvencaLogoa objectAtIndex: [kvota2Niz indexOfObject:element]] isEqualToString:@"2"])
        {
            [kvote2 addObject:[privremeniArray objectAtIndex:k]];
            k++;
        }