2016-07-29 3 views
0

私は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.'を取得します。NSSutableDescriptorを使用して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]];を使用していたとき、私は何の問題もなかったです。他の2つの行を追加すると、問題が発生しました。ブレークポイントを使用してクラッシュした場所を調べて、最後の行([customerArray sortUsingDescriptors:@[numberSorter]];)を実行しようとした後にクラッシュすることがわかりました。

ご迷惑をおかけして申し訳ございませんが、必要に応じて喜んでコードを追加いたします。

+2

'customerArray'文字列の要素はありますか?もしそうなら、存在していないこれらの要素の 'ID'プロパティを比較しているのでエラーが出ます。記述子を削除し、要素を直接比較するために '[customerArray sortUsingSelector:@selector(localizedStandardCompare :)]'を使用してください。 – Doc

+0

@Docあなたは正しいですが、文字列ですが、それは辞書の元の配列だと思っていました。以前作成された。ありがとう、それは働いた。あなたが答えとしてそれを置くなら、私はそれを受け入れるでしょう。 – JustMe

答えて

0

エラーがvalueForUndefinedKeyと表示されています。つまり、お客様のケースのNSMutableArray内のオブジェクト、つまりcustomerArrayには名前ID(未定義キー)のキーがありません。

NSMutableArray内のオブジェクトをチェックする必要があります。

これがあなたの問題を解決することを願っています。

関連する問題