2012-08-10 131 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