2012-08-13 44 views
1

我使用NSSortDescriptor我的tableView排序,但此行是製造麻煩排序:錯誤時NSSortDesctiptor通過的plist數

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

「率」是在plist中數字字符串(數組字典) 。

如果詞典未評分,默認值爲「0」,如果評分爲「1」,「2」,「3」,「4」,「5」或「6」。爲什麼我不能按這些值排序,以及如何去做?

'NSInvalidArgumentException' 的,理由是: ' - [__ NSCFNumber長]: 無法識別的選擇發送到實例0x6c382c0'

編輯:

的問題是,我評比字典用字符串而不是數字:

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

如何設置數字而不是字符串?

+2

你確定這是正確的嗎?投訴是關於「長度」選擇器,而您的描述符要求「費率」。 – dasblinkenlight 2012-08-13 19:16:14

+0

不,我很抱歉,問題是,當我評價字典時,費率是寫成字符串而不是數字!將更新問題。 – ingenspor 2012-08-13 19:20:40

回答

1

如何設置速率而不是字符串的數字?

可以使用NSNumber,而不是一個字符串:

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

NSNumber其他類的方法包括:numberWithLongnumberWithDoubleNumberWithFloat

+0

這是告訴我,numberWithInt是udeclared身份證 – ingenspor 2012-08-13 19:31:02

+0

感謝您的更正 – ingenspor 2012-08-13 19:32:53