数组返回错误位置的值

时间:2019-05-21 21:38:41

标签: ios swift uitableview swift3 nsarray

我在使用数组时遇到问题,正在使用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: "&nbsp;", 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]

但是我有同样的错误

1 个答案:

答案 0 :(得分:1)

当您单击顶部单元格之类的时,您需要打印第一个值

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
  print(arraytitleN[indexPath.row]) 
}

在此处分配值

contenido = cell.contenidoN.text!

不保证它是index = 0处的值,因为对所有可见单元格都调用cellForRowAt,因此可以将其分配给任何其他行中的任何值