2013-01-13 27 views
1

我有一個NSMutableIndexSet,我希望能夠添加和存儲由1設置索引,計劃使用塊這樣做,這是我到目前爲止有:加入NSMutableIndexSet的每個元素由1

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

有沒有辦法在同一時間進行迭代和修改?如果是的話如何?上面的代碼似乎沒有工作

+0

試着解釋更多地瞭解你所要完成你的出發點是什麼。但基本上,不,你不能枚舉和修改你正在枚舉的'NSMutableIndexSet'。 – zaph

回答

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)]

+0

你可以添加一個代碼嗎? – adit