Swift将字典数组传递给NSMutableArray

问题描述:

我想将swift数组字典传递给NSMutableArray。但是我收到错误“无法将类型[[String:Anyobject?]]的值转换为期望的参数类型NSMutableArray”。以下是代码:Swift将字典数组传递给NSMutableArray

var ary : [[String:AnyObject?]] = [] 
    var mutableDictionary = [String: AnyObject?]() 

    for c in buffer { 
     mutableDictionary.updateValue(c.Name, forKey: "name") 
     mutableDictionary.updateValue(c.Number, forKey: "phoneNumber") 
     mutableDictionary.updateValue(c.id, forKey: "id") 
     ary.append(mutableDictionary) 
    } 

现在将这个“ary”作为NSMutableArray传递给Objective C方法!

Manager.sharedInstance().List(ary) 
+0

尝试'Manager.sharedInstance()。List(ary as!NSMutableArray)'。 – Avi

+0

不,它会崩溃,因为从[[string:anyobject?]]投射到nsmutablearray总是失败 – Hitesh

+0

'NSMutableDictionary'不能包含optionals,也不能包含'NSMutableArray'。你必须在'AnyObject'上放下可选项。 – Avi

副本:

var ary : [[String:AnyObject]] = [] 
    var mutableDictionary = [String: AnyObject]() 
    var mutableArray:NSMutableArray! 

    for _ in 0...4 { 
     mutableDictionary.updateValue("adsf", forKey: "name") 
     mutableDictionary.updateValue("dsf", forKey: "phoneNumber") 
     mutableDictionary.updateValue("sdfd", forKey: "id") 
     ary.append(mutableDictionary) 
    } 

    mutableArray = NSMutableArray(array: ary) 

卸下可选的伎俩!

+0

非常感谢!工作,但它会导致可选的问题? anyidea – Hitesh

+0

我唯一的解释是:_“NSMutableArray不包含可选项”_。我希望有更好更深刻的解释的人会在这里解释我们。 –

+0

太棒了!谢谢! :) – Hitesh

//尝试像你的问题的这种

Manager.sharedInstance().List(NSMutableArray(array: ary as! NSArray)) 
+0

不,它会崩溃,因为从[[string:anyobject?]]投射到nsmutablearray总是失败 – Hitesh

+0

做一件事而不是此语句(var ary:[[String:AnyObject?]] = [])可以像这样var ary:[AnyObject] = [] –

+0

并尝试以上解决方案 –