2011-08-19 65 views
0

在我有以下代碼...爲caseInsensitiveCompare無法識別的選擇:與多於一個的對象陣列

[sortedTripDatesList removeAllObjects];  
[sortedTripDatesList addObjectsFromArray:[tempArray sortedArrayUsingSelector:@selector(caseInsensitiveCompare:)]]; 

tempArray是NSDates(事件的日期)的一個的NSMutableArray。如果數組的Xcode拋出一個無法識別的選擇例外在一個以上的項目...

「 - [__ NSDate的caseInsensitiveCompare:]:無法識別的選擇發送到實例0x4f66dd0」

我認爲,這是因爲數組中的對象是NSDates。在閱讀文檔和多個Google搜索後,我對如何對日期數組進行排序感到困惑。

其實我已經有了這段代碼現在運行了一段時間,直到今天都沒有發現任何問題。也許我在今天之前從未在陣列中出現過1次以上的日期,但是我發現這很難相信,因爲我現在已經測試了這個應用很多個月,並且肯定會在測試期間的某個時間點進入多個事件。

這樣做的正確方法是什麼?任何幫助將不勝感激。

約翰

+1

這個傢伙會給你任何你不知道的提示嗎? http://stackoverflow.com/questions/1132806/sort-nsarray-of-date-strings-or-objects –

+0

我在發佈之前已經閱讀過該帖子。那時我開始感到困惑。 – user278859

回答

2

如果你在你的陣列NSDates,你不應該使用caseInsensitiveCompare選擇,因爲NSDate的不迴應。相反,應使用compare選擇器:

[sortedTripDatesList removeAllObjects];  
[sortedTripDatesList addObjectsFromArray:[tempArray sortedArrayUsingSelector:@selector(compare:)]]; 
+0

我以爲我在發佈我的問題之前已經嘗試過了,但現在它已經可以工作了。我嘗試瞭如此多的組合,但沒有告訴我在嘗試使用compare時做了什麼。謝謝,我真的很感謝你的快速回應。 – user278859