在设备上模糊地使用'下标'

时间:2016-05-10 13:56:09

标签: swift device ambiguous

我的模拟器上有我的应用程序完成,但当我尝试在手机上使用时,我有2个错误Ambiguous use of 'subscript'

我正在阅读这篇文章,但无法修复它。 How to solve Ambiguous use of 'subscript' in Swift 2?

enter image description here

问题出在这里

        let favs = rescataRegistrosFav()
        print(favs)
        print("-----------------------------------------------")



        if(arrayCompleta[row][2] == ""){
            cell.imagenMovil.image = nil
        }else{
            cell.imagenMovil.image = UIImage(named: "mov.png")
        }


        if(favs.count > 0){


            for i in 0...favs.count-1
            {
                for j in 0...favs[i].count-1
                {

                    print("MUESTRO.....\(favs[i][j] as! String)")   //Ambiguous use of 'subscript'

                    if(favs[i][j] as! String == cell.getNombreCelda()){  ////Ambiguous use of 'subscript'
                        cell.botonFav.setImage(UIImage(named: imagenFav[1])!, forState: .Normal)

                        return cell
                    }



                }
            }


        }

在我的restacaRegistrosFavs中,我像其他帖子一样投射,但没有。

func rescataRegistrosFav() -> NSArray{

    //_____REPARARAQUI_______

    var array = [[String]]()

    if((NSUserDefaults.standardUserDefaults().arrayForKey("MIARRAYFAV")) != nil){
       return NSUserDefaults.standardUserDefaults().arrayForKey("MIARRAYFAV")! as! [[String]]
    }

    return array
}

我该如何解决这个问题?谢谢!

1 个答案:

答案 0 :(得分:1)

NSArray实际上是Array<AnyObject>,因此可能有一些符合AnyObject的类型也会实现下标函数。而不是声明rescataRegistrosFav返回NSArray尝试更具体并声明它:

func rescataRegistrosFav() -> [[String]]