作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
所以我一直在尝试从 UITableView 加载单元格并将它们放入 NSMutableArray 以便稍后迭代。我有一个名为 populateArrayWithCells 的方法,在我放入 6 个以上的单元格之前它工作正常。由于某种原因,返回的对象为零。我的代码如下,StocksAndAccounts 是 UITableView,我在第 1 节中对 UITableViewCells 进行了子类化。
- (void) populateArrayWithCells
{
for (int i = 0; i < [StocksAndAccounts numberOfRowsInSection:1]; i++) {
if ([StocksAndAccounts cellForRowAtIndexPath:[NSIndexPath indexPathForRow:i inSection:1]] == nil) {
NSLog(@"object at index %i is nil", i);
}
[stocksCells addObject:[StocksAndAccounts cellForRowAtIndexPath:[NSIndexPath indexPathForRow:i inSection:1]]];
}
}
此函数在通过 IBAction 调用时成功返回单元格,直到索引为 6,在这种情况下它为 nil 并崩溃,因为它试图添加一个 nil 的对象。非常感谢任何对此问题的帮助。
最佳答案
我认为您误解了 UITableViews 的工作原理。 tableview 中的单元格仅在需要显示时才加载,并且它们会被回收,因此如果您一次只能在屏幕上看到六个单元格,那么表格将永远只包含六个单元格,它只会不断更新和重用与您上下滚动时相同的六个。
不是将数据存储在表格单元格中,而是将其存储在 View Controller 中的自定义对象数组中,并在表格从数据源方法请求它们时使用这些对象填充单元格。
这样,如果您需要将该数据用于除显示在表格中之外的其他用途,您可以从原始对象重新创建它,而不是尝试将其复制出表格单元格。
关于iphone - 循环遍历 UITableView 的 UITableViewCells,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8859638/
我是一名优秀的程序员,十分优秀!