我正在使用Core Data作爲tableview。我的數據按距離當前位置的距離排序。我想要的是爲5,10和20英里的物品製作一個新的部分。距離組NSFetchedResultsController節
我的距離值作爲NSInteger存儲在數據存儲中,我在對象模型中使用NSNumber將其取出。
我已經做了一些四處搜索,發現我需要使用sectionNameKeyPath
屬性來分割數據。
我的問題是,我不知道分組數據的最佳方式。在我的搜索過程中,我遇到了一個瞬態屬性或使用一個NSNumber類別來確定該項目應該在哪個部分。
這兩種方法中的哪一種都是獲得最終結果的最佳方法,如果有的話,是否有人提供有關如何實施它的任何細節?
謝謝。
感謝您的回覆。對不起,如果我在這裏有點笨,但是當你說一個「派生屬性」時,你的意思是在我的數據模型對象的.h文件中,我做了這樣的事情:@property(monatomic,readonly)NSInteger * range;另外,我是否需要創建自己的getter方法來返回5,10或20? –
這種方法可以工作,但它是一個快速和骯髒的修復,混淆了用戶界面和模型。通常,您不希望使用視圖圖層的實現細節來污染模型圖層。如果你有幾個tableview全部由不同屬性的範圍定義的部分會發生什麼?你會有多個派生屬性,每個tableview一個。當你想在另一個應用程序中使用數據模型會發生什麼?儘可能保持模型和視圖儘可能分離是最佳實踐。 – TechZen
scrooby,是的。 @TechZen,同意。但是在使用FetchedResultsController的同時,你有更好的方法來管理這個嗎?我很想知道它(因爲你陳述的原因)。 - - - 的「清潔設計」選項,現在是自己實現所有的委託方法,扔掉FetchedResultsController只有使用FetchedResults - 這是更多的工作,以獲得「清潔設計」,司寇你來決定的位置是這是期望的。正如TechZen所說,如果有很多可能性,你可能不希望推入模型。 – bshirley