2013-04-10 46 views
0

我正在嘗試瞭解有關爲OS X創建應用程序的更多信息,並且遇到了一個谷歌未能提供答案的問題。我創建的示例應用程序是一個RSS閱讀器。我有文件夾和Feed的核心數據實體,Feed從文件夾繼承。從樹型控制器填充的大綱視圖中顯示核心數據屬性的值的總和

Folder的一個屬性是unreadCount,類型爲Integer64。 Feed從文件夾繼承此屬性。這個想法是顯示Feed中未讀文章數的顯示,並且包含在文件夾中的所有Feed的未讀文章總數將與該文件夾一起顯示。

我有一個NSTreeController管理實體文件夾。此樹控制器用文件夾/提要的標題和每個提要和文件夾的unreadCount填充大綱視圖(現在文件夾剛剛默認爲0)。 unreadCount通過一個值轉換器顯示,該轉換器接受整數並返回其字符串版本。所有這些都與蜜蜂建立綁定,並工作正常。

我遇到的問題是讓文件夾的unreadCount成爲其所有未讀數的總和。我搜索了幾個小時,發現似乎是從陣列控制器填充表的解決方案,但是這顯然不適用於樹控制器(從我可以確定的方面)。

所以,我的問題,我如何才能顯示unreadCount一個文件夾是原料中的文件夾中包含時顯示的是從樹上控制器填充一個大綱視圖的unreadCounts的總和?

回答

0

我建議你重新考慮你的數據模型。而不是使Feed繼承自Folder,而是使用通過關係連接的兩個獨立實體:一個Folder有許多Feed實例。

然後您的計數可以由模型圖層提供:@sum.self.feeds。這使您可以編寫自動化測試,並且當您需要某些特定文件夾中未讀文章的數量等時,它將簡化您的生活。

+0

當我第一次開始項目時,我走了單獨的'Feed'和'Folder'實體的道路,但無法弄清楚如何讓它們填充大綱視圖,但是我無法將所有內容填充到像我希望的大綱視圖。基本上,父實體總是一個「文件夾」,但它們可以包含其他的「文件夾」實體以及「Feed」實體(它總是一片葉子)。有沒有一個簡單的例子,我錯過了,展示瞭如何從樹控制器(和我想象的數組控制器)填充大綱視圖,所有的綁定? – OneTrueBob 2013-04-11 13:18:26

+0

爲了繼續這個最後的評論,所以這個例子應該是一個實體'Folder',它與一個實體'Feed'有很多關係。但是'Folder'的孩子也可以是其他'Folder'實體。我也嘗試過一個'Tree Node'實體,它與自己有一對多的關係,並且'Folder'和'Feed'實體繼承了它,但是無法讓這個mojo也能工作。我覺得我正在理解這個問題的尖端,但是還有一些重要的信息可以啓發我尚未偶然發現的一切。謝謝。 – OneTrueBob 2013-04-11 13:23:21

+1

我得到它與一個超級實體一起工作,這兩個'Feed'和'Folder'繼承自控制超級實體的樹控制器。然後,我可以在包含'Folder'子項的'NSSet'上使用@sum。 – OneTrueBob 2013-04-11 18:45:05

相關問題