将NSMutableIndexSet的每个元素添加1

时间:2013-01-13 02:26:49

标签: iphone ios objective-c ipad

我有一个NSMutableIndexSet,我希望能够添加和存储索引设置为1,计划使用块来执行此操作,这是我到目前为止所拥有的:

[indexes enumerateIndexesUsingBlock:^(NSUInteger idx, BOOL *stop) {
            //add and store back the set here
            idx++;
}];

有没有办法同时进行迭代和修改?如果有,怎么样?上面的代码似乎不起作用

1 个答案:

答案 0 :(得分:4)

您无法枚举和修改您枚举的NSMutableIndexSet。只需创建一个新的NSMutableIndexSet并将条目添加到它。令人怀疑是否有性能受损。

示例(使用ARC):

NSMutableIndexSet *originalIndexSet = [NSMutableIndexSet new];
[originalIndexSet addIndex:1];
[originalIndexSet addIndex:5];

NSMutableIndexSet *newIndexSet = [NSMutableIndexSet new];
[originalIndexSet enumerateIndexesUsingBlock:^(NSUInteger idx, BOOL *stop) {
    [newIndexSet addIndex:idx+1];
}];

NSLog(@"originalIndexSet: %@", originalIndexSet);
NSLog(@"newIndexSet:      %@", newIndexSet);

然后

originalIndexSet = newIndexSet;

NSLog输出:

  

originalIndexSet:[索引数:2(2个范围内),索引:(1 5)]
  newIndexSet:[索引数:2(在2个范围内),索引:(2 6)]