我在使用数组时遇到问题,正在使用WebService来返回不同的URL,我将此信息保存在数组中,然后在UITableView中显示,问题是在数组的第一个位置必须是一个链接,例如:www.sitioWeb.com,但是当我想使用didSelectedRowAt方法恢复它时,有时第一个位置是我数组的第二个位置
我已经检查了数组中包含的信息,并且一切看起来都不错,从WebService中恢复的信息可以很好地恢复并且没有问题
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return arrayTituloN.count
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "cell") as! InicioTableViewCell
cell.tituloN.text = arrayTituloN[indexPath.row]
cell.links.isHidden = true
//Limpiamos texto de la descripcion de la noticia
let descripcionI = arrayExcerptN[indexPath.row]
let betaDescripcion = descripcionI.replacingOccurrences(of: "<p>", with: "")
let alphaDescripcion = betaDescripcion.replacingOccurrences(of: "</p>", with: "")
let descripcion = alphaDescripcion.replacingOccurrences(of: " ", with: " ")
cell.descripcionN.text = descripcion
//Limpiamos el texto que tiene los links pdf
let linkI = arrayContentN[indexPath.row]
let betaLink = linkI.components(separatedBy: ".pdf")
let linkA: String = betaLink[0]
let linkX = linkA.components(separatedBy: "https:")
let linkS: String = linkX[1]
let linkUltra: String = "https:"+linkS+".pdf"
cell.contenidoN.text = linkUltra
cell.contenidoN.isHidden = true
print(cell.contenidoN.text!)
//Mostraremos imagenes dependiendo el link
if((cell.contenidoN.text?.contains(".pdf"))! && (cell.contenidoN.text?.contains(".png"))!){
cell.imagenN.image = UIImage(named: "ImagenLauncher")
}else if(cell.contenidoN.text?.contains(".pdf"))!{
cell.imagenN.image = UIImage(named: "documentosXSize")
}
contenido = cell.contenidoN.text!
return cell
}
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
print(contenido)
}
当我按下表格的第一个单元格时,您应该返回类似于以下内容:“ www.linkonthefirstcell.com” 问题是有时我会在第一个位置返回数组的第二个值。
我尝试通过以下方式将数组分配给变量“ content”:var contenido:String =“” 当我使用WebService将所有信息加载到数组中时,请执行以下操作:
contenido = arraytitleN [indexPath.row]
但是我有同样的错误
答案 0 :(得分:1)
当您单击顶部单元格之类的时,您需要打印第一个值
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
print(arraytitleN[indexPath.row])
}
在此处分配值
contenido = cell.contenidoN.text!
不保证它是index = 0处的值,因为对所有可见单元格都调用cellForRowAt
,因此可以将其分配给任何其他行中的任何值