Ambiguous use of 'subscript'

本文介绍了一个在Swift编程过程中遇到的关于Ambiguoususeof'subscript'错误的具体案例。该错误源于尝试从类型不匹配的对象中获取属性值。通过将响应数据类型从[Any]更改为[String:Any]并使用适当的类型转换,成功解决了此问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >



在接入环信的时候无啦啦整个项目报了一堆这样的错误,然后百度了,许久没有结果。
用百度翻译得知Ambiguous use of 'subscript'的中文意思是“下标”的歧义用法。

所以,我就猜,是不是语法问题而已。因为我创建的

 func getQiniuToken(completion:@escaping (_ data:String)->()){

        

        let urlStr = baseURL + qiNiuTokenURL

        

        let parameters = ["op":"token","param":"{\"type\":\"video\"}"] as [String : Any]

        

        request(method: .post, URLString: urlStr, parameters: parameters) { (respone) in

            

            let data = respone["data"as? String

            

            userDefault.set(data, forKey: uploadToken)

            

            completion(data ?? "")

        }

        

    }


提示respone报错,报Ambiguous use of 'subscript',后来发现respone是[Any]类型的,所以先转成[String:Any]就好了,要在guard里面转。

 func getQiniuToken(completion:@escaping (_ data:String)->()){

        

        let urlStr = baseURL + qiNiuTokenURL

        

        let parameters = ["op":"token","param":"{\"type\":\"video\"}"] as [String : Any]

        

        request(method: .post, URLString: urlStr, parameters: parameters) { (respone) in

            

            guard let res = respone as? [String:Any] else{

                return

            }

            

            let data = res["data"as? String

            

            userDefault.set(data, forKey: uploadToken)

            

            completion(data ?? "")

        }

        

    }



然后就好了。GGGGG.大吉大利今晚吃鸡


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值