I [Dictionary<String,Any!>]
-[Dictionary<String,Any?>]
konvertieren [Wörterbuch <String,Any?>] in [Wörterbuch <String,Any!>]? swift 3
aber ich bekomme immer wieder diese Fehler zu anhängen versuche:
Cannot Convert value of Type [Dictionary] to expected argument type of [Dictionary]
Obwohl ich nicht diesen Compiler-Fehler bekommen haben mit swift2
.
Hier ist mein Code:
class A{
var statistics = [Dictionary<String,Any!>]();
func1(){
let oldStatiscs = self.func2()
//i am getting the error here.
self.statistics.append(oldStatiscs)
}
func2() -> [Dictionary<String,Any?>]{
}
}
Warum erhalte ich diesen Fehler auf swift3? Warum erhalte ich diesen Fehler nicht mit swift2? Wie kann dieses Problem gelöst werden?
Dank
Jeder optionale Wert in einem Swift - in Objective-C ist es sogar nicht erlaubt - Dictionary ist unsinnig, weil ein 'nil'-Wert definitionsgemäß einen fehlenden Schlüssel bedeutet und Sie einen Schlüssel durch Zuweisung eines 'nil'-Wertes entfernen können. – vadian
@vadian danke für deinen Kommentar, ja ich weiß, aber derzeit kann ich es nicht ändern, um Wörterbuch. Haben Sie eine Lösung für mein Problem? –
david
'[Dictionary]' ist in Swift 3 als Variablentyp ungültig (es kann nur an einer kleinen Anzahl von Orten existieren). Sie müssen es ändern. Wenn Sie es nicht ändern können, können Sie nicht auf Swift 3 upgraden. Sie sehen die Fehler noch nicht, aber wenn Sie alle anderen Fehler beheben, werden Sie schließlich auf "Implicitly unwrapped optionals sind nur auf höchster Ebene erlaubt und als Funktionsergebnisse. " Du kannst diesen Typ nicht mehr verwenden (in Swift 2 war das Unsinn; in Swift 3 ist es illegal). –