NSMutableArray每次都添加相同的对象

时间:2014-04-22 06:56:44

标签: ios iphone nsmutablearray

我在添加的NSMutableArray中添加了对象,但它添加了相同的对象三次而不是不同的或新的。

Calendar Sow Array具有数据Breedingdate和母猪名称。

for (SOWObject *object in appDelegate.calenderSowArray) {

    temp = object.breedingDate;
    NSLog(@"Date %@",temp);

    [arrayNew removeAllObjects];
    for (indxs = 0; indxs <countOfarray; indxs ++) {

        SOWObject *neObject= (SOWObject *)[appDelegate.calenderSowArray objectAtIndex:indxs];

        NSLog(@"Breeding Date %@",neObject.breedingDate);

        if ([temp isEqualToString:neObject.breedingDate]) {

            [arrayNew removeAllObjects];
            [arrayNew addObject:neObject];
         }
     }

     [testArray addObject:arrayNew];

 }

3 个答案:

答案 0 :(得分:0)

在添加之前检查数组是否包含对象。通过这样做,特定对象将只添加一次。

 if(![arrayNew containsObject:neObject]) // if arrayNew does not contain neObject, add it to the array
{
       add it to the array 
}

或者如果你的testArray正在添加相同的对象,那么,

 if(![testArray containsObject:arrayNew])  // if testArray does not contain arrayNew, add it to the array
    {
           add it to the array 
    }

答案 1 :(得分:0)

试试这个,

NSMutableArray *testArray = [[NSMutableArray alloc]init];
    for (SOWObject *object in appDelegate.calenderSowArray) 
    {
         [testArray addObject:object];
    }

如果你想将appdelegate.calendarSowArray中的所有SOWObject添加到TestArray中,那么这就足够了。

答案 2 :(得分:0)

看起来您正在尝试创建一个数组数组,但内部数组总是只包含一个元素。如果这是你想要的那样:

for (SOWObject *object in appDelegate.calenderSowArray) {

    temp = object.breedingDate;
    NSLog(@"Date %@",temp);

    for (indxs = 0; indxs <countOfarray; indxs ++) {

        SOWObject *neObject= (SOWObject *)[appDelegate.calenderSowArray objectAtIndex:indxs];

        NSLog(@"Breeding Date %@",neObject.breedingDate);

        if ([temp isEqualToString:neObject.breedingDate]) {
            [testArray addObject:@[ neObject ]];    // This creates a new inner-array each time        
         }
     }
}

如果没有(你只想要一个数组)那么:

[testArray addObject:neObject];