我有一個TableViewController顯示元素CoreData關係的列表。在我的cellForRowAtIndexPath:中,我從集合中獲取了一個sortedArray,然後訪問indexPath.row中的元素。然後在didSelectRowAtIndexPath中,我正在做同樣的事情。每次需要訪問特定索引處的元素時,重新對數組進行排序可以嗎?
這是否被認爲是不好的做法?我發現一個理論上的危險,即如果我的排序方法在後續調用中返回一個不同排序的數組,即使用戶單擊了顯示對象A的單元格,我也可能最終與對象B進行交互。不應該有可能我的排序返回一個不同的排序數組,但我仍然認爲這在技術上是有風險的。
我知道這樣做的唯一方法是讓我的tableViewController保留它自己的NSArray成員,並且當它第一次加載時,通過排序集來填充數組。唯一的問題是,我將不得不單獨維護集合和數組;修改,插入或刪除任何時候用戶改變的東西的對象。這是否被認爲是在表格中顯示CoreData元素的「正確」方式?
嗯,我只是花了半小時調試一個錯誤,這是因爲我正在更新我的設置,然後期望我的sortedArray仍然反映我的tableView中的內容。所以我認爲這非常證明你是對的。另外,雖然我並不十分關心性能(我的設置只包含6個元素),但當我必須經過幾十次排序方法時,調試更加痛苦。 – GendoIkari 2010-12-03 21:05:47