-1

これは、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ループに入ります。 クラス のインスタンス変数です。文字列とを含む配列です。NSLoggedkkvota2NSStringPar_sekvencaLogoa"2""3"

何か案は?

4

1 に答える 1

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++;
        }
于 2012-08-10T08:14:29.570 に答える