NSIndexSet如何成为根对象?

时间:2015-06-13 09:45:01

标签: nskeyedarchiver nsindexset

以下是使用拖放重新排序表格时的典型代码段。

- (BOOL)tableView:(NSTableView *)tv writeRowsWithIndexes:(NSIndexSet *)rowIndexes toPasteboard:(NSPasteboard *)pboard {
    NSData *data = [NSKeyedArchiver archivedDataWithRootObject:rowIndexes];
    [pboard declareTypes:[NSArray arrayWithObject:MyDataType] owner:self];
    [pboard setData:data forType:MyDataType];
    sourceIndex = [rowIndexes firstIndex];
    return YES;
}

看一下

 NSData *data = [NSKeyedArchiver archivedDataWithRootObject:rowIndexes];

rowIndexes如何成为根对象?

文档说NSIndexSet类表示唯一无符号整数的不可变集合....您在代码中使用索引集将索引存储到其他一些数据结构中。例如,给定一个NSArray对象,您可以使用索引集来标识该数组中的对象子集。

似乎NSIndexSet不是一个简单的"一个独立的无符号整数的不可变集合"还有一组标识对象的指针。它很混乱,任何人都可以解释发生了什么?

0 个答案:

没有答案