Swift Parse.com错误:键的类型无效'';,应为数组,但得到字符串(代码:111,版本:1.8.3)

Swift Parse.com错误:键的类型无效'';,应为数组,但得到字符串(代码:111,版本:1.8.3),swift,parse-platform,pfuser,Swift,Parse Platform,Pfuser,我正在Swift中使用解析框架。我有以下代码 var user = PFUser() user.username = "username" user.password = "password" user.addObject("firstname", forKeyedSubscript: "firstName") user.addObject("lastName", forKeyedSubscript: "lastName") user.addObject("mobileNumber", forK

我正在Swift中使用解析框架。我有以下代码

var user = PFUser()
user.username = "username"
user.password = "password"
user.addObject("firstname", forKeyedSubscript: "firstName")
user.addObject("lastName", forKeyedSubscript: "lastName")
user.addObject("mobileNumber", forKeyedSubscript: "mobile")
user.addObject("city", forKeyedSubscript: "city")

user.signUpInBackgroundWithBlock { succeeded, error in
    if (succeeded) {
        //The registration was successful
    } else if let error = error {
        //Something bad has occurred
    }
}
在web门户中,它显示如下:

它使用我给出的键在列中创建“数组”。我希望它们是弦。因此,我将代码更改为以下内容。因此,我将addObject更改为setObject,如下所示:

var user = PFUser()
user.username = "username"
user.password = "password"
user.setObject("firstname", forKeyedSubscript: "firstName")
user.setObject("lastName", forKeyedSubscript: "lastName")
user.setObject("mobileNumber", forKeyedSubscript: "mobile")
user.setObject("city", forKeyedSubscript: "city")

user.signUpInBackgroundWithBlock { succeeded, error in
    if (succeeded) {
        //The registration was successful
    } else if let error = error {
        //Something bad has occurred
    }
}
它显示以下错误

[Error]: invalid type for key city, expected array, but got string (Code: 111, Version: 1.8.3)

如何使用Swift代码在带有键的列中添加字符串?

您需要将parse.com门户上的
city
firstName
lastName
mobile
的列类型更改为
String
。您需要删除此列,并添加具有相同名称和正确类型的新列。

问题在于您已经在此实体上创建了与您现在要设置的列类型不同的列


根据数据库中的数据量,我建议您删除这些列。您必须使用Parse dashboard执行此操作。

否,必须在门户上执行。您在parse.com上创建的列的数据类型不正确。您可以将它们用作数组:
user[“city”]=[“newyork”]
但我很确定这不是您想要实现的。使用正确的类型在parse上重新创建列,您会没事的。最初,我没有在parse.com门户网站上创建任何列。通过运行上述代码,它自动创建了带有数组的列。但是,我希望它使用我的代码创建带有字符串的列。我还没有创建任何列。我已经运行了上面的代码,这些列是由解析框架自动创建的。现在,我想让它用代码创建带有字符串的列。是的,你做到了。你不必在网站上创建它们。使用新属性保存对象足以创建列。对同一列使用不同对象类型的另一次保存将失败,更改列类型的唯一可能性是删除(在网站上)并再次创建(在网站上或应用程序中)。您还可以使用具有新名称的新列。如果您想保留数据,您必须执行自定义数据迁移(可能是通过云代码工作)。