我正在構建一個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.'
。使用NSSortDescriptor排序NSMutableArray
這是我使用的代碼:
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]];
)後崩潰。
任何幫助將不勝感激,如果需要,我會很樂意添加更多的代碼。
'customerArray'字符串中的元素是?如果是這樣,比你得到的錯誤,因爲你比較這些元素的'ID'屬性,這是不存在的。刪除描述符並使用'[customerArray sortUsingSelector:@selector(localizedStandardCompare :)]'直接比較元素 – Doc
@Doc你說得對,它們是字符串,但我完全忘了,認爲它是原來的字典數組,早先創建。謝謝,那有效。如果你把這個作爲答案,我會接受它。 – JustMe