1

我有一个用 NSArray 填充的 UITableView。不幸的是,这个数组的大小和内容不断变化。所以我想创建该数组的全局单一副本(在某个时间点)并使用它来填充我的表。

这就是我正在做的事情:

。H

@interface TableViewController : UITableViewController {
//    ProcessListArrayHolder *processListArrayObject;

    NSArray *_myArray;
}

...

@property(nonatomic,strong) NSArray *myArray;

.m

@synthesize myArray = _myArray;

// in ViewDidLoad
_myArray = [myObject myFunctionThatReturnsAnArray]; //This function returns a different array every time because the data is constantly changing

但是,当我滚动时,_myArray 看起来是空的,并且我得到一个“错误访问”,试图从中获取一个值。

当我滚动时,TableView 在做什么?有没有办法让它一次加载整个表?

编辑:为了解决这个问题,我刚刚使用了属性“myArray”,将其称为“self.myArray”,并忽略了 _myArray。

4

1 回答 1

1

首先,您可能应该使用生成的设置器(这就是它的用途)

self.myArray = [myObject myFunctionThatReturnsAnArray]; 

您首先在哪里初始化该数组?

你的cellForRowAtIndexPathnumberOfRowsInSection代码是什么样的?如果您有一个正确初始化的数组并正确设置了委托函数,那么您永远不会收到错误的访问权限。当你滚动时,表格视图正在使用它的委托来填充和显示它当时需要的单元格。

于 2012-07-19T14:40:57.427 回答