"对æˆå‘˜åœ°å›¾çš„模糊å‚考"当试图追加/替æ¢æ•°ç»„元素时

时间:2015-12-19 08:55:36

标签: swift

多个SO帖å­like this处ç†ç›¸åŒçš„错误消æ¯ï¼Œä½†è¿™äº›è§£å†³æ–¹æ¡ˆéƒ½ä¸èµ·ä½œç”¨ã€‚看起æ¥è¿™å¯èƒ½æ˜¯ä¸€ä¸ªè¯¯å¯¼æ€§é”™è¯¯æ¶ˆæ¯çš„情况。

下é¢çš„代ç ä¼šç”Ÿæˆä¸€ä¸ªï¼†ï¼ƒ34;ä¸æ˜Žç¡®çš„æˆå‘˜åœ°å›¾å‚考"地图调用的错误。

任何人都知é“为什么?

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)
    }
}

1 个答案:

答案 0 :(得分:0)

从未隔离错误的原因,因此切æ¢åˆ°ä½¿ç”¨for循环,在循环内创建新数组,并在循环åŽè°ƒç”¨masterDict["users"] = newArray。ä¸æ˜¯æœ€å¹²å‡€çš„,但它修å¤äº†é”™è¯¯ã€‚