没有从UITableView获取所有UITableViewCell
问题描述:
我在我的UITableView中有一个自定义的单元格,里面有一个textField。我试图从表格视图中读取textFields的值。没有从UITableView获取所有UITableViewCell
要想从文本框的细胞和价值观,我使用下面的代码:
for var i = 0; i < myTableView.numberOfRowsInSection(0); i++ { //5 records
let index: NSIndexPath = NSIndexPath(forRow: i, inSection: 0)
//getting the cell at position i
let cell = self.myTableView.cellForRowAtIndexPath(index) as! myCustomCell
//Read data
let newValue = cell.myTextField.text
}
我没有得到任何编译器错误,但是当我运行应用程序,有时在小区索引失败0,有时在单元格索引3处,它处于随机位置。我得到的错误是:
fatal error: unexpectedly found nil while unwrapping an Optional value
我明白,因为该单元不存在于myTableView中。
任何人都可以指出我在正确的方向能够从我的表视图中读取所有的自定义单元格吗?
答
UITableViewCells正在回收。这就是为什么你不这样做的安全。您需要像其他人已经指出的那样使用数据模型。
只要有可能,请从模型(数据源数组)中读取值,而不是从视图(表格视图单元格)中读取值。 – vadian
是否给出了单元类中的文本字段的出口 –
是的,这些单元已就位,并且我正在从tableview直接读取,因为用户能够更改文本字段值。所以我想读这些新值并更新我的数据模型。 –