我想用一個NSArrayController提供數據給一個NSTableView。我現在面臨的問題是,我不希望我的所有數據預先加載到一個數組,然後使用陣列控制器setContent:
方法。我的數據模型是一個龐大的現有代碼庫,可管理數百萬條記錄。它包含有效地返回一組數據行的方法。NSArrayController的不加載一個大的數據集到一個數組
下面的例子我發現在限制NSArrayController中的對象數量時,我嘗試了繼承NSArrayController並覆蓋了arrangedObjects:
方法來返回我寫的數組代理類。陣列代理類提供count:
和objectAtIndex:
方法。由objectAtIndex:
返回的對象是一個NSDictionary。當我試圖從arrangedObjects:
方法既count:
和objectAtIndex:
被調用返回我的數組代理,但我也得到一個無法識別的選擇錯誤在我的陣列代理類_valueForKeyPath:ofObjectAtIndex:
。這看起來像一個私人方法,所以我沒有繼續下去。
我也想過從arrangedObjects:
返回一個更小的數據陣列,但無法弄清楚我將如何確定NSTableView試圖顯示哪些行。
一個DataSource「正確」的方式與我現有的數據模型,接口或者是有一些方法,使一個NSArrayController工作?