我需要用两个指针保存一些PFObject
。一个是createdBy
,它等于PFUser.currentUser()
。另一个是card
,它等于我的示例变量s8HiwfvKtQ
。当我运行此代码时,我收到以下错误:
[Error]: invalid type for key card, expected *Cards, but got string (Code: 111, Version: 1.7.1)
我的代码在这里:
var ex = "s8HiwfvKtQ"
func addToWants() {
let wants = PFObject(className:"Wants")
wants["createdBy"] = PFUser.currentUser()
wants["card"] = ex
wants.save()
}
我做错了什么?
答案 0 :(得分:2)
您不需要进行查询(因为您正在点击服务器,这是相对昂贵的)。相反,只需使用objectId创建 placeholder for the object 并使用它来填充指针。
答案 1 :(得分:1)
wants["card"]
是一个Cards对象而不是String。您应该通过ex
获取卡片,如下所示:
wants["card"] = query.getObjectWithId("ParseObjectIDString")
答案 2 :(得分:1)
我认为您在 Parse 数据浏览器中预先定义了数据架构,并且检测到card
的类型应该是Cards
的实例,而不是{{ 1}}。您需要在数据浏览器中更改数据架构才能完成。这就是您的错误消息所说的内容。
在 Parse 中,您可以在不预先定义任何数据模式的情况下创建数据。一旦您已经预先定义了数据模式,就必须遵循您的规则。
答案 3 :(得分:-1)
我明白了。我不得不对该对象进行查询,并将结果用作" card"的参数。指针。
var ex = "s8HiwfvKtQ"
func addToWants() {
var query = PFQuery(className:"Cards")
query.getObjectInBackgroundWithId("\(ex)") {
(card: PFObject?, error: NSError?) -> Void in
if error == nil && card != nil {
let wants = PFObject(className:"Wants")
wants["createdBy"] = PFUser.currentUser()
wants["card"] = card
wants.save()
} else {
println(error)
}
}
}