我有一个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/