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)
副本:
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)
卸下可选的伎俩!
//尝试像你的问题的这种
Manager.sharedInstance().List(NSMutableArray(array: ary as! NSArray))
不,它会崩溃,因为从[[string:anyobject?]]投射到nsmutablearray总是失败 – Hitesh
做一件事而不是此语句(var ary:[[String:AnyObject?]] = [])可以像这样var ary:[AnyObject] = [] –
并尝试以上解决方案 –
尝试'Manager.sharedInstance()。List(ary as!NSMutableArray)'。 – Avi
不,它会崩溃,因为从[[string:anyobject?]]投射到nsmutablearray总是失败 – Hitesh
'NSMutableDictionary'不能包含optionals,也不能包含'NSMutableArray'。你必须在'AnyObject'上放下可选项。 – Avi