使用NSSortDescriptor对NSMutableArray进行排序

时间:2016-07-29 00:08:06

标签: ios objective-c nsmutablearray nssortdescriptor

我正在构建iOS应用。我需要对NSMutableArray进行排序,所以我使用了NSSortDescriptor。但是,当我运行我的应用时,我很遗憾地获得了Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[<NSTaggedPointerString 0xa000000343730314> valueForUndefinedKey:]: this class is not key value coding-compliant for the key ID.'

这是我使用的代码:

customerArray = [[NSMutableArray alloc] initWithArray:[rootDict allKeys]];
NSSortDescriptor *numberSorter = [NSSortDescriptor sortDescriptorWithKey:@"ID" ascending:YES selector:@selector(localizedStandardCompare:)];

[customerArray sortUsingDescriptors:@[numberSorter]];

之前,当我刚刚使用customerArray = [[NSMutableArray alloc] initWithArray:[rootDict allKeys]];时,我没有遇到任何问题。一旦我添加了另外两行,我就开始遇到问题了。我检查了它使用断点崩溃的位置,发现它在尝试运行最后一行([customerArray sortUsingDescriptors:@[numberSorter]];)后崩溃。

任何帮助都将不胜感激,如果需要,我很乐意添加更多代码。

1 个答案:

答案 0 :(得分:0)

由于您的错误指出valueForUndefinedKey,这意味着NSMutableArray中的对象,即您的案例中的customerArray没有名称ID的密钥(未定义密钥)。

您需要检查NSMutableArray中的对象。

希望这能解决你的问题。