无法将字符串添加到 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"))
})
}
我有一个推送到提要的按钮,我想在每次单击按钮时在我的 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"))
})
}