array.index (of: ) 无法正常工作
Posted
技术标签:
【中文标题】array.index (of: ) 无法正常工作【英文标题】:array.index (of: ) not working properly 【发布时间】:2017-09-16 23:56:02 【问题描述】:我正在尝试在数组中查找 UITableViewCell 文本。问题是无论我点击哪个单元格,array.index(of:)
总是返回 1。
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath)
let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath)
if let text = cell.textLabel?.text
let indexOfCellString = event.index(of: text)
print (indexOfCellString!)
//here is my attempt to set the cell text:
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell
let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath)
if eventIndex.indices.contains(indexPath.row) == true
cell.textLabel?.text = event [indexPath.row]
return cell
event 是一个数组,我试图在其中搜索并查找单元格的文本。 并且单元格的文本始终在事件索引中。因为我的 tableview 从事件数组中读取信息。因此它不应该总是返回 1。 我做错了什么?
【问题讨论】:
如果没有更多信息,没有人可以帮助您。你还没有解释event
是什么。您尚未提供有关 text
所包含内容的任何详细信息。您发布的代码无效。 self)
行是什么?
它应该返回 cell.textlable.text 所在事件的索引。但无论我点击哪个表格行,它总是返回 1。不用说表格行中有不同的字符串
你在哪里设置单元格标签的文本?
我编辑了问题并添加了我的尝试
【参考方案1】:
切勿在cellForRowAt
之外使用dequeueReusableCell
。只需从您的数据模型中访问您的数据。
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath)
if eventIndex.indices.contains(indexPath.row) == true
let text = event[indexPath.row]
if let indexOfCellString = event.index(of: text)
print("Found index: \(indexOfCellString)")
else
print("text not found")
【讨论】:
以上是关于array.index (of: ) 无法正常工作的主要内容,如果未能解决你的问题,请参考以下文章
斯威夫特火力.observe或.observeSingleEvent将无法正常工作