1

NSSortDescriptortableViewの並べ替えにを使用していますが、この行で問題が発生しています。

if (buttonIndex == 0) {
    sortDesc = [[NSSortDescriptor alloc] initWithKey:@"Rate" ascending:NO];
}

「Rate」は、plist(辞書を含む配列)の数値文字列です。

辞書が評価されていない場合、デフォルト値は「0」であり、評価されている場合、値は「1」、「2」、「3」、「4」、「5」、または「6」です。これらの値で並べ替えることができないのはなぜですか。また、その方法を教えてください。

'NSInvalidArgumentException'、理由:'-[__ NSCFNumber length]:認識されないセレクターがインスタンス0x6c382c0に送信されました'

編集:

問題は、辞書を数値ではなく文字列で評価していることです。

[mutDict setValue:@"0" forKey:@"Rate"];

文字列の代わりにレートの数値を設定するにはどうすればよいですか?

4

1 に答える 1

1

文字列の代わりにレートの数値を設定するにはどうすればよいですか?

NSNumber文字列リテラルの代わりに使用できます。

[mutDict setValue:[NSNumber numberWithInt:0] forKey:@"Rate"];
//          The actual rate goes here ----^

のその他のクラスメソッドにNSNumberは、、、、numberWithLongおよびnumberWithDoubleが含まれますNumberWithFloat

于 2012-08-13T19:26:45.517 に答える