ho seguito cercare di convertire un dizionario per NSData:Swift: Tipo di argomento '[String: ValueType]' non è conforme al tipo previsto 'ANYOBJECT' codice
func dataFromDict<ValueType>(dict: [String:ValueType]) -> NSData {
return NSKeyedArchiver.archivedDataWithRootObject(dict)
}
Il compilatore mi dà questo errore per il passaggio dict
come argomento:
Argument type '[String:ValueType]' does not conform to expected type 'AnyObject'
Edit:
@v la soluzione di Adian ha funzionato per me.
Ho anche provato a lanciare il dict a NSDictionary
:
return NSKeyedArchiver.archivedDataWithRootObject(dict as NSDictionary)
Ma ottenere questo errore:
Cannot convert value of type '[String:ValueType]' to type 'NSDictionary' in coercion
Perché?
non buttare via le informazioni sul tipo. Si spera che si possano limitare i valori del dizionario di input ai tipi reali in modo da sapere come decodificarli in un secondo momento. Sì, è possibile utilizzare un cast per eliminare/ignorare l'avviso del compilatore, ma non risolve il problema reale. –