"Mehrdeutiger Verweis auf member map" beim Versuch, append/replace array element

Mehrere SO Beiträge wie diese befassen sich mit der gleichen Fehlermeldung, aber keine dieser Lösungen funktionieren. Es scheint, wie dies ein Fall einer irreführenden Fehlermeldung.

Den code unten erzeugt ein "Mehrdeutiger Verweis auf member map" - Fehler für die Karte nennen.

Wer weiß, warum?

func saveUser(user: User) {
    var userDicts = masterDict["users"] as! [[String:AnyObject]]
    let newDict = user.getDict()

    //Replace matching element with <newDict>
    let replaced = false
    masterDict["users"] = userDicts.map {
        if ($0["id"] as String! == user.getId()) {
            replaced = true
            return newDict
        } else {
            return $0 as [String:AnyObject]
        }
    }

    //If no match found, means must add new user
    if (!replaced) {
        userDicts.append(newDict)
    }
}
Wie es scheint, swift ist eine harte Zeit Herleitung geben für die Karte. versuchen userDicts.map {val -> [String:AnyObject] in - und swap-out $0 für val
Auch, welche version von Xcode verwenden Sie, ich kann nicht scheinen, um zu replizieren, die Ihre genauen Fehler, und der erste Fehler den ich sehe, ist "change ersetzt werden, um eine var", so dass Sie vielleicht brauchen, zu aktualisieren Xcode. Ich bin derzeit auf 7,2
Es ist nicht das wichtigste problem, aber replaced sollte ein var kein let
sorry, du hast Recht. dies war eine bereinigte version und vergessen, zu ersetzen, die let für replaced aber sonst ist alles das gleiche. Mit Xcode 7.2.

InformationsquelleAutor Crashalot | 2015-12-19

Schreibe einen Kommentar