swift - Merging Dictionaries that are <String, Any> -
i trying merge 2 dictionaries, both of type:
var dict = dictionary<string, any> i have been using code merge them:
extension dictionary { mutating func extend(with:dictionary){ (key,value) in { self.updatevalue(value, forkey:key) } } } ... dict.extend(["num":123,"str":"abc","obj":uicolor.bluecolor()]) this lastly line produces error:
cannot convert expression's type '(with: dictionary<string, any>)' type 'dictionary<string, nsobject>' so ive been trying solve changing declaration of extend to:
mutating func extend(with:dictionary<string, any> but results in line self.updatevalue in producing error:
'protocol<>' not convertible 'value' my best guess here .updatevalue objective c method, , objective c struggles any info type.
so next move seek , convert <string, any> object <string, nsobject> object in hope .updatevalue take it. when seek this:
var dict2 = dictionary<string, nsobject> xcode wants set semi colon after nsobject. if complains else. ive seen before, seems xcode can tell not right, cant set finger on it.
so issue this:
i have 2 dictionaries. they both have<string, any>. i have merge them one. anyone have idea's on how this?
the problem here:
dict.extend(with:["num":123,"str":"abc","obj":uicolor.bluecolor()]) ^^^^^ the first parameter of class/struct methods has no automatic external name, have phone call as:
dict.extend(["num":123,"str":"abc","obj":uicolor.bluecolor()]) if want utilize external name, have explicitly declare it:
mutating func extend(withdict with:dictionary) { ^^^^^^^^ or if want utilize same local name:
mutating func extend(# with:dictionary){ ^ suggested reading: external parameter names
this code used testing:
var dict = dictionary<string, any>() extension dictionary { mutating func extend(with:dictionary){ (key,value) in { self.updatevalue(value, forkey:key) } } } dict.extend(["num":123,"str":"abc","obj":uicolor.bluecolor()]) swift
No comments:
Post a Comment