无法将字符串添加到 PFUser 的数组

Cannot add String to Array for PFUser

我有一个推送到提要的按钮,我想在每次单击按钮时在我的 PFUser class 中的数组 ("itemChosen") 中记录提要项目的名称:

@IBAction func buttonTapped(sender: UIButton) {

        PFUser.currentUser()!.addObject(feedItem.feedItemName, forKey: "itemChosen")
        PFUser.currentUser()!.saveInBackgroundWithBlock({ (success: Bool, error: NSError?) -> Void in
            println(PFUser.currentUser()?.objectForKey("itemChosen"))
        })
}

我收到错误:

Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Operation is invalid after previous operation.'

如果我使用:

PFUser.currentUser()!.setObject(feedItem.feedItemName, forKey: "itemChosen")

我可以将名称保存为单数字符串,但我想将其附加到数组中。为什么 addObject 不起作用,我该如何解决?

尝试这样做:

@IBAction func buttonTapped(sender: UIButton) {
    if PFUser.currentUser()!["itemChosen"] == nil { PFUser.currentUser()!["itemChosen"] = [String]() }
    (PFUser.currentUser()!["itemChosen"] as! NSMutableArray).addObject(feedItem.feedItemName)
    PFUser.currentUser()!.saveInBackgroundWithBlock({ (success: Bool, error: NSError?) -> Void in
        println(PFUser.currentUser()?.objectForKey("itemChosen"))
    })
}

问题是PFUser.currentUser!["itemChosen"]可以是nil

编辑: 我找到了一种使用 Xcode 6:

的方法
extension PFUser {
    var param: [String] {
        get {
            if let x = self["itemChosen"] as? [String] {
                return x
            } else {
                return []
            }
        }
        set(val) {
            self["itemChosen"] = val
        }
    }
}

@IBAction func buttonTapped(sender: UIButton) {
    PFUser.currentUser()!.param.append(feedItem.feedItemName)
    PFUser.currentUser()!.saveInBackgroundWithBlock({ (success: Bool, error: NSError?) -> Void in
        println(PFUser.currentUser()?.objectForKey("itemChosen"))
    })
}