ich folgenden Code haben versucht, ein Wörterbuch zu NSData konvertieren:Swift: Argumenttyp ‚[String: Valuetype]‘ entspricht nicht erwarteten Typ ‚ANYOBJECT‘
func dataFromDict<ValueType>(dict: [String:ValueType]) -> NSData {
return NSKeyedArchiver.archivedDataWithRootObject(dict)
}
Der Compiler mir diesen Fehler für Vergehen gibt dict
als Argument:
Argument type '[String:ValueType]' does not conform to expected type 'AnyObject'
bearbeiten:
@v Adians Lösung funktionierte für mich.
Ich habe auch versucht die dict NSDictionary
würfen
return NSKeyedArchiver.archivedDataWithRootObject(dict as NSDictionary)
Aber immer diese Fehlermeldung:
Cannot convert value of type '[String:ValueType]' to type 'NSDictionary' in coercion
Warum?
Sie Typinformationen nicht wegwerfen. Hoffentlich können Sie Ihre Eingabewörterbuchwerte auf tatsächliche Typen beschränken, so dass Sie später wissen, wie Sie sie dekodieren. Ja, Sie können eine Umwandlung verwenden, um die Compiler-Warnung zu beseitigen/zu ignorieren, sie löst das eigentliche Problem jedoch immer noch nicht. –