El dictionary Swift pone como un valor que no funciona

Yo creo un dictionary en swift:

var type:String var content:[UInt8] let dict = NSMutableDictionary() dict.setValue(type, forKey: "type") dict.setValue(content, forKey: "content") 

Cannot convert value of type [UInt8] un error que: Cannot convert value of type [UInt8] al tipo de argumento esperado 'AnyObject?', Pero si cambio el tipo de contenido como [UInt], funcionará bien. ¿Por qué? De hecho, quiero definir una matriz de bytes como en Java, así que quiero usar [UInt8], ¿alguien podría ayudarme? Gracias de antemano.

puedes usar types nativos Swift

 var dict: Dictionary<String,Array<UInt8>> = [:] dict["first"]=[1,2,3] print(dict) // ["first": [1, 2, 3]] 

Te recomiendo que uses el tipo Swift nativo tanto como puedas … Por favor, mira las notas de Martins a ti, ¡es muy útil!

si el caso es que desea almacenar allí algún valor, simplemente defina su dictionary como el tipo correcto

 var dict: Dictionary<String,Array<Any>> = [:] dict["first"]=[1,2,3] class C { } dict["second"] = ["alfa", Int(1), UInt(1), C()] print(dict) // ["first": [1, 2, 3], "second": ["alfa", 1, 1, C]] 

para ver, que el tipo de valor aún es conocido, puedes verificarlo

 dict["second"]?.forEach({ (element) -> () in print(element, element.dynamicType) }) /* alfa String 1 Int 1 UInt CC */ 

si desea almacenar cualquier valor, puede hacerlo …

 var type:String = "test" var content:[UInt8] = [1,2,3,4] var dict: Dictionary<String,Any> = [:] dict["type"] = type dict["content"] = content dict.forEach { (element) -> () in // ["content": [1, 2, 3, 4], "type": "test"] print("key:", element.0, "value:", element.1, "with type:", element.1.dynamicType) /* key: content value: [1, 2, 3, 4] with type: Array<UInt8> key: type value: test with type: String */ }