我有一个NSMutableIndexSet,我希望能够添加和存储由1设置的索引,并计划使用一个块来完成它,这就是我到目前为止所拥有的:

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

有没有一种方法可以同时迭代和修改?如果是,怎么办?上面的代码似乎不起作用

最佳答案

您无法枚举和修改您要枚举的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)]

关于iphone - 将NSMutableIndexSet的每个元素加1,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14300084/

10-10 20:44