Look at following two statements:
NSMutableIndexSet *selectedRows = [[[NSMutableIndexSet alloc] initWithIndexSet:[_dataTableView selectedRowIndexes]] autorelease];
NSMutableIndexSet *rowsToDelete = [[selectedRows copy] autorelease];
I expected rowsToDelete to be an NSMutableIndexSet, but its NSIndexSet. Looks like copy is not implemented in NSMutableIndexSet. If thats so, isn't it a big miss not implementing copy even for such a basic type? or I am missing something fundamental to IndexSet interface?