我的班级有一个属性是enum
. 此属性绑定到NSTableColumn
.
typedef enum _Status
{
Unknown=0,
Win,
OSX
} Status;
为了确保NSTableColumn
显示正确的字符串表示,而不是显示数字 0、1 和 2,我使用NSValueTransformer
.
因此Unknown
变成“未知操作系统”。Win
变成“MS Windows”并OSX
变成“OSX 10.8”。表格列正确显示了这些值。
我需要使用转换后的值对列进行排序。如果我使用
[NSSortDescriptor sortDescriptorWithKey:@"status"
ascending:YES
selector:@selector(compare:)];
该列按以下顺序排序:
未知操作系统
MS Windows
OSX 10.8
这确实是有道理的,因为 0 < 1 < 2。但我要求它使用它们的字符串对应物进行排序,这将使它:
MS Windows
OSX 10.8
未知操作系统
如何在不更改枚举顺序的情况下做到这一点?