2012-08-10 134 views
-1

這是從方法的一段代碼,其中通過加載TFHpple一些元件:對象不是保存在的NSMutableArray

// 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的值爲kkvota2Par類的NSString實例變量。 _sekvencaLogoa是一個包含字符串"2""3"的數組。

任何想法?

+0

什麼不起作用?將一個對象添加到數組中?日誌報表在哪裏? – 2012-08-10 07:59:32

回答

2

這不是正確的字符串comparsion

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++; 
     } 
+0

NeverBe,我試過了你的建議,但是同樣的事情。 int k遞增,所以比較語法是可以的。 kvote2數組中必須有20個Par對象,但只有17個,這17個來自[kvote2 addObject:trenutnaKvota2]; 3對象必須由[kvote2 addObject:[privremeniArray objectAtIndex:k]]添加; 真的很奇怪:( – 2012-08-10 09:38:54