Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 延迟加载表视图时出现的问题_Objective C_Macos_Cocoa_Nstableview_Nsarraycontroller - Fatal编程技术网

Objective c 延迟加载表视图时出现的问题

Objective c 延迟加载表视图时出现的问题,objective-c,macos,cocoa,nstableview,nsarraycontroller,Objective C,Macos,Cocoa,Nstableview,Nsarraycontroller,我在尝试懒洋洋地填充nestableview时遇到了一个严重的问题。下面是我的方法 我创建了一个自定义类PRIList,其中有一个数组实例来管理模型。 我已经将priList.items绑定到xib中的数组控制器,其中items不是priList中的实例,但为了支持延迟加载,我实现了方法countOfItems和objectinemsatindex: 最初,当我填充PRIList时,我用有效对象填充了几个对象(比如50个),其余的则是错误的对象。在objectinemsatindex中,我检查特

我在尝试懒洋洋地填充
nestableview
时遇到了一个严重的问题。下面是我的方法

我创建了一个自定义类
PRIList
,其中有一个数组实例来管理模型。 我已经将priList.items绑定到
xib
中的数组控制器,其中items不是
priList
中的实例,但为了支持延迟加载,我实现了方法
countOfItems
objectinemsatindex:

最初,当我填充
PRIList
时,我用有效对象填充了几个对象(比如50个),其余的则是错误的对象。在
objectinemsatindex
中,我检查特定索引中的项目是否有效或错误。如果它有故障,我将取下一组50个对象

我的理解是,
NSArrayController
只为表视图中可见的行调用方法
objectinemsatindex
。但是这里的问题是,只要设置了PRIList,就会为所有对象调用
objectinemsatindex
方法。甚至在表视图中更改某些选择时也会调用此方法(堆栈跟踪显示此方法是从
[\u NSModelObservingTracker startObservingModelObjectAtReferenceIndex]
调用的)

基本上,每当用户在表视图中向下滚动时,我都希望获取记录

我在Lion的另一个项目中采用了相同的方法。它在那里奏效了。目前我在小牛队

我尝试在自定义表视图中覆盖
isCompatibleWithResponsiveScrolling
,并将其返回到NO。仍然没有成功


非常感谢您的帮助。

首先,您是否分配或绑定了阵列控制器的排序描述符?或设置任何列以自动生成排序描述符?(我不确定后者是否相关。这取决于默认情况下是否对列进行排序。)

在任何情况下,如果阵列控制器认为需要对对象进行排序以排列对象,则需要加载所有内容。我的印象是,不管怎样,它总是这样,尽管你报告说它是有效的


对于这样的问题,我建议您使用完全手动控制。这意味着不使用绑定或数组控制器。使用数据源。

我已从xib中解除了创建排序描述符的绑定,并注释掉了相同的代码。还是一样的问题。