我有一个用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是空的,我得到一个“Bad Access”试图从中获取一个值。
滚动时TableView正在做什么? 有没有办法让它一次加载整个表?
编辑:为了解决这个问题,我只使用了属性“myArray”,将其称为“self.myArray”,并忽略了_myArray。
答案 0 :(得分:1)
首先,您应该使用生成的setter(这就是它的用途)
self.myArray = [myObject myFunctionThatReturnsAnArray];
首先在哪里初始化该数组?
您的cellForRowAtIndexPath
和numberOfRowsInSection
代码是什么样的?如果您有正确初始化的阵列并正确设置委托功能,则永远不会收到错误的访问权限。滚动时,表视图使用其代理来填充和显示当时所需的单元格。