如何将迭代对象添加到NSMutableArray中

时间:2012-11-22 20:53:30

标签: iphone core-data nsmutablearray

当我调用DidSelectRowAtIndexPath时,我正在检查单元格是否已被检查,如果是,请检查Core Data中的密钥。 (此过程允许我将导航按钮从nil设置为Add,如果选中了一个项目)。我还想将所选项目放在一个数组(或集合)中,以便我可以在我的Add方法中调用它(以保存到Core Data)。我在头文件中声明了checkedArray,但它只将最后选择的单元格保存到数组中。这样做的正确方法是什么?

Athlete *checkedAthlete = (Athlete *)[self.fetchedResultsController objectAtIndexPath:indexPath];

[checkedAthlete setValue:[NSNumber numberWithBool:targetCustomCell.checked] forKey:@"athleteChecked"];

BOOL hasChecked = NO;
for (checkedAthlete in self.fetchedResultsController.fetchedObjects)
{
    BOOL isChecked = [[checkedAthlete valueForKey:@"athleteChecked"] boolValue];
    if (isChecked)
    {
        hasChecked = YES;

       checkedArray = [[NSMutableArray alloc] initWithObjects:checkedAthlete,nil];
        //NSLog(@"%@",checkedArray);
    }
}

我还在标题中声明了NSMutableSet并尝试了:

  [testSet = [NSMutableSet set] addObject:checkedAthlete];

1 个答案:

答案 0 :(得分:0)

在这一行

checkedArray = [[NSMutableArray alloc] initWithObjects:checked athlete,nil];

您正在做的是创建一个新数组,其中包含一个项目并将其分配给checkedArray

您要做的是创建一个数组/集,然后向其添加对象。

- (void)viewDidLoad;
{
  [super viewDidLoad];

  self.checkedArray = [NSMutableArray array];
}

然后再做

[self.checkedArray addObject:checkedAthlete];

这是获取现有的可变数组/集并向其添加一个新对象,就像之前每次只使用一个项创建一个新的可变数组/集