NSSortdescriptor没有键,而是使用自定义数据模型属性

时间:2014-05-30 18:33:03

标签: ios objective-c nssortdescriptor

请使用以下代码,我必须记住我的自定义数据模型的key名称。

// define a sort descriptor
NSSortDescriptor *descriptor = [[NSSortDescriptor alloc]initWithKey:@"timeStamp"; ascending:YES];
NSArray *scArray = [[NSArray alloc]initWithObjects:descriptor, nil];

我是不是可以做myCustomDataModel.timeStamp之类的事情,就像我使用自定义managedObjects将实体插入商店一样?这样做的一个原因是减少输入错误。 (我忘了这个单词的名字是什么,沿着类型面的线条?我要写的单词的意思是由于编译时间检查而导致的错误更少)

1 个答案:

答案 0 :(得分:0)

是的,你可以使用NSStringFromSelector函数做类似的事情。只要您的数组中填充了myCustomDataModel类中的对象,并且该类具有名为timeStamp的属性,就可以执行此操作,

    NSString *sortString = NSStringFromSelector(@selector(timeStamp));
    NSSortDescriptor *sorter = [NSSortDescriptor sortDescriptorWithKey:sortString ascending:YES];
    self.myArray = [self.myArray sortedArrayUsingDescriptors:@[sorter]];

如果拼错了选择器的名称,您将获得一个未声明的选择器"来自编译器的警告。