gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 01:42:40 24 4
gpt4 key购买 nike

我有一个推送到提要的按钮,我想在每次单击按钮时在我的 PFUser 类中的数组(“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"))
})
}

关于ios - 无法将字符串添加到 PFUser 的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32236877/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com