Swift3 获取对成员下标的不明确引用

Swift3 获取对成员下标的不明确引用,swift3,Swift3,我正在将代码更新为swift3.0,但对成员的引用不明确?我可能做错了什么。这是我遇到错误的方法 open class func parseJsonTenantList(_ list: [NSDictionary]?, strElementName: String, attrName1: String, attrNameValue2: String) -> [TenantRegister] { var renantList: [TenantRegister] = [] v

我正在将代码更新为swift3.0,但对成员的引用不明确?我可能做错了什么。这是我遇到错误的方法

 open class func parseJsonTenantList(_ list: [NSDictionary]?, strElementName: String, attrName1: String, attrNameValue2: String) -> [TenantRegister]
{
    var renantList: [TenantRegister] = []
    var key: String?
    if let dict : [NSDictionary] = list {
        var value: String?
        for i in 0..<dict.count {
            ///  if attribute name doesn't match then it returns nil
            if  let s1: AnyObject = dict[i].value(forKey: attrName1)
            {
                key = s1 as? String
            }
            if  let s2: AnyObject = dict[i].value(forKey: attrNameValue2)
            {
                value = s2 as? String
            }
            if (!(String.stringIsNilOrEmpty(value) && String.stringIsNilOrEmpty(key)))
            {
                let t: TenantRegister = TenantRegister()
                t.name = key
                t.tenantId = Guid(value!)
                renantList.append(t)
            }
        }
    }



    return renantList
}
open class func parseJsonTenantList(u-list:[NSDictionary]?,strElementName:String,attrName1:String,attrNameValue2:String)->[TenantRegister]
{
var renantList:[租户注册者]=[]
变量键:字符串?
如果让dict:[NSDictionary]=列表{
var值:字符串?

对于0中的i.问题是您正在使用
NSDictionary
,要解决您的问题,只需将列表强制转换为Swift的本机类型
[[String:Any]]
,然后使用下标而不是
值(forKey:)

如果让dict=列为?[[String:Any]]{
var值:字符串?

对于0中的i..在此行获取错误:如果让s1:AnyObject=dict[i].value(forKey:attrName1)您的问题解决了吗?不,仍然不知道该解决什么问题让我来解决
if let dict = list as? [[String:Any]] {
    var value: String?
    for i in 0..<dict.count {
        ///  if attribute name doesn't match then it returns nil
        if  let s1 = dict[i][attrName1] as? String
        {
            key = s1
        }
        if  let s2 = dict[i][attrNameValue2] as? String
        {
            value = s2
        }
        if (!(String.stringIsNilOrEmpty(value) && String.stringIsNilOrEmpty(key)))
        {
            let t: TenantRegister = TenantRegister()
            t.name = key
            t.tenantId = Guid(value!)
            renantList.append(t)
        }
    }
}